diff --git a/bind/genobjc.go b/bind/genobjc.go
index 92c39ab..8c8ff85 100644
--- a/bind/genobjc.go
+++ b/bind/genobjc.go
@@ -1392,9 +1392,10 @@
 }
 
 var objcNameReplacer = newNameSanitizer([]string{
-	"void", "char", "short", "int", "long", "float", "double", "signed",
-	"unsigned", "id", "const", "volatile", "in", "out", "inout", "bycopy",
-	"byref", "oneway", "self", "super", "init"})
+	"bool", "bycopy", "byref", "char", "const", "double", "float",
+	"id", "in", "init", "inout", "int", "long", "nil", "oneway",
+	"out", "self", "short", "signed", "super", "unsigned", "void",
+	"volatile"})
 
 const (
 	objcPreamble = `// Objective-C API for talking to %[1]s Go package.
diff --git a/bind/testdata/keywords.go b/bind/testdata/keywords.go
index d5a7733..6a04f0b 100644
--- a/bind/testdata/keywords.go
+++ b/bind/testdata/keywords.go
@@ -58,6 +58,8 @@
 	False()
 	Null()
 	True()
+	Bool()
+	Nil()
 }
 
 func Const(id string)        {}
diff --git a/bind/testdata/keywords.go.golden b/bind/testdata/keywords.go.golden
index 4ad33bc..9d80a51 100644
--- a/bind/testdata/keywords.go.golden
+++ b/bind/testdata/keywords.go.golden
@@ -35,6 +35,13 @@
 	v.Assert()
 }
 
+//export proxykeywords_KeywordCaller_Bool
+func proxykeywords_KeywordCaller_Bool(refnum C.int32_t) {
+	ref := _seq.FromRefNum(int32(refnum))
+	v := ref.Get().(keywords.KeywordCaller)
+	v.Bool()
+}
+
 //export proxykeywords_KeywordCaller_Boolean
 func proxykeywords_KeywordCaller_Boolean(refnum C.int32_t) {
 	ref := _seq.FromRefNum(int32(refnum))
@@ -245,6 +252,13 @@
 	v.New()
 }
 
+//export proxykeywords_KeywordCaller_Nil
+func proxykeywords_KeywordCaller_Nil(refnum C.int32_t) {
+	ref := _seq.FromRefNum(int32(refnum))
+	v := ref.Get().(keywords.KeywordCaller)
+	v.Nil()
+}
+
 //export proxykeywords_KeywordCaller_Null
 func proxykeywords_KeywordCaller_Null(refnum C.int32_t) {
 	ref := _seq.FromRefNum(int32(refnum))
@@ -404,6 +418,10 @@
 	C.cproxykeywords_KeywordCaller_Assert(C.int32_t(p.Bind_proxy_refnum__()))
 }
 
+func (p *proxykeywords_KeywordCaller) Bool() {
+	C.cproxykeywords_KeywordCaller_Bool(C.int32_t(p.Bind_proxy_refnum__()))
+}
+
 func (p *proxykeywords_KeywordCaller) Boolean() {
 	C.cproxykeywords_KeywordCaller_Boolean(C.int32_t(p.Bind_proxy_refnum__()))
 }
@@ -524,6 +542,10 @@
 	C.cproxykeywords_KeywordCaller_New(C.int32_t(p.Bind_proxy_refnum__()))
 }
 
+func (p *proxykeywords_KeywordCaller) Nil() {
+	C.cproxykeywords_KeywordCaller_Nil(C.int32_t(p.Bind_proxy_refnum__()))
+}
+
 func (p *proxykeywords_KeywordCaller) Null() {
 	C.cproxykeywords_KeywordCaller_Null(C.int32_t(p.Bind_proxy_refnum__()))
 }
diff --git a/bind/testdata/keywords.java.c.golden b/bind/testdata/keywords.java.c.golden
index 5e1fa46..933410b 100644
--- a/bind/testdata/keywords.java.c.golden
+++ b/bind/testdata/keywords.java.c.golden
@@ -13,6 +13,7 @@
 jmethodID proxy_class_keywords_KeywordCaller_cons;
 static jmethodID mid_KeywordCaller_Abstract;
 static jmethodID mid_KeywordCaller_Assert;
+static jmethodID mid_KeywordCaller_Bool;
 static jmethodID mid_KeywordCaller_Boolean;
 static jmethodID mid_KeywordCaller_Break;
 static jmethodID mid_KeywordCaller_Byte;
@@ -43,6 +44,7 @@
 static jmethodID mid_KeywordCaller_Long;
 static jmethodID mid_KeywordCaller_Native;
 static jmethodID mid_KeywordCaller_New;
+static jmethodID mid_KeywordCaller_Nil;
 static jmethodID mid_KeywordCaller_Null;
 static jmethodID mid_KeywordCaller_Package;
 static jmethodID mid_KeywordCaller_Private;
@@ -74,6 +76,7 @@
     clazz = (*env)->FindClass(env, "keywords/KeywordCaller");
     mid_KeywordCaller_Abstract = (*env)->GetMethodID(env, clazz, "abstract_", "()V");
     mid_KeywordCaller_Assert = (*env)->GetMethodID(env, clazz, "assert_", "()V");
+    mid_KeywordCaller_Bool = (*env)->GetMethodID(env, clazz, "bool", "()V");
     mid_KeywordCaller_Boolean = (*env)->GetMethodID(env, clazz, "boolean_", "()V");
     mid_KeywordCaller_Break = (*env)->GetMethodID(env, clazz, "break_", "()V");
     mid_KeywordCaller_Byte = (*env)->GetMethodID(env, clazz, "byte_", "()V");
@@ -104,6 +107,7 @@
     mid_KeywordCaller_Long = (*env)->GetMethodID(env, clazz, "long_", "()V");
     mid_KeywordCaller_Native = (*env)->GetMethodID(env, clazz, "native_", "()V");
     mid_KeywordCaller_New = (*env)->GetMethodID(env, clazz, "new_", "()V");
+    mid_KeywordCaller_Nil = (*env)->GetMethodID(env, clazz, "nil", "()V");
     mid_KeywordCaller_Null = (*env)->GetMethodID(env, clazz, "null_", "()V");
     mid_KeywordCaller_Package = (*env)->GetMethodID(env, clazz, "package_", "()V");
     mid_KeywordCaller_Private = (*env)->GetMethodID(env, clazz, "private_", "()V");
@@ -167,6 +171,19 @@
 }
 
 JNIEXPORT void JNICALL
+Java_keywords_Keywords_00024proxyKeywordCaller_bool(JNIEnv* env, jobject __this__) {
+    int32_t o = go_seq_to_refnum_go(env, __this__);
+    proxykeywords_KeywordCaller_Bool(o);
+}
+
+void cproxykeywords_KeywordCaller_Bool(int32_t refnum) {
+    JNIEnv *env = go_seq_push_local_frame(0);
+    jobject o = go_seq_from_refnum(env, refnum, proxy_class_keywords_KeywordCaller, proxy_class_keywords_KeywordCaller_cons);
+    (*env)->CallVoidMethod(env, o, mid_KeywordCaller_Bool);
+    go_seq_pop_local_frame(env);
+}
+
+JNIEXPORT void JNICALL
 Java_keywords_Keywords_00024proxyKeywordCaller_boolean_1(JNIEnv* env, jobject __this__) {
     int32_t o = go_seq_to_refnum_go(env, __this__);
     proxykeywords_KeywordCaller_Boolean(o);
@@ -557,6 +574,19 @@
 }
 
 JNIEXPORT void JNICALL
+Java_keywords_Keywords_00024proxyKeywordCaller_nil(JNIEnv* env, jobject __this__) {
+    int32_t o = go_seq_to_refnum_go(env, __this__);
+    proxykeywords_KeywordCaller_Nil(o);
+}
+
+void cproxykeywords_KeywordCaller_Nil(int32_t refnum) {
+    JNIEnv *env = go_seq_push_local_frame(0);
+    jobject o = go_seq_from_refnum(env, refnum, proxy_class_keywords_KeywordCaller, proxy_class_keywords_KeywordCaller_cons);
+    (*env)->CallVoidMethod(env, o, mid_KeywordCaller_Nil);
+    go_seq_pop_local_frame(env);
+}
+
+JNIEXPORT void JNICALL
 Java_keywords_Keywords_00024proxyKeywordCaller_null_1(JNIEnv* env, jobject __this__) {
     int32_t o = go_seq_to_refnum_go(env, __this__);
     proxykeywords_KeywordCaller_Null(o);
diff --git a/bind/testdata/keywords.java.golden b/bind/testdata/keywords.java.golden
index 23d2d6c..9839bfe 100644
--- a/bind/testdata/keywords.java.golden
+++ b/bind/testdata/keywords.java.golden
@@ -9,6 +9,7 @@
 public interface KeywordCaller {
     public void abstract_();
     public void assert_();
+    public void bool();
     public void boolean_();
     public void break_();
     public void byte_();
@@ -39,6 +40,7 @@
     public void long_();
     public void native_();
     public void new_();
+    public void nil();
     public void null_();
     public void package_();
     public void private_();
@@ -97,6 +99,7 @@
         
         public native void abstract_();
         public native void assert_();
+        public native void bool();
         public native void boolean_();
         public native void break_();
         public native void byte_();
@@ -127,6 +130,7 @@
         public native void long_();
         public native void native_();
         public native void new_();
+        public native void nil();
         public native void null_();
         public native void package_();
         public native void private_();
diff --git a/bind/testdata/keywords.java.h.golden b/bind/testdata/keywords.java.h.golden
index 23886d7..4af5e9f 100644
--- a/bind/testdata/keywords.java.h.golden
+++ b/bind/testdata/keywords.java.h.golden
@@ -15,6 +15,8 @@
 
 void cproxykeywords_KeywordCaller_Assert(int32_t refnum);
 
+void cproxykeywords_KeywordCaller_Bool(int32_t refnum);
+
 void cproxykeywords_KeywordCaller_Boolean(int32_t refnum);
 
 void cproxykeywords_KeywordCaller_Break(int32_t refnum);
@@ -75,6 +77,8 @@
 
 void cproxykeywords_KeywordCaller_New(int32_t refnum);
 
+void cproxykeywords_KeywordCaller_Nil(int32_t refnum);
+
 void cproxykeywords_KeywordCaller_Null(int32_t refnum);
 
 void cproxykeywords_KeywordCaller_Package(int32_t refnum);
diff --git a/bind/testdata/keywords.objc.go.h.golden b/bind/testdata/keywords.objc.go.h.golden
index ed1f241..0e16f5a 100644
--- a/bind/testdata/keywords.objc.go.h.golden
+++ b/bind/testdata/keywords.objc.go.h.golden
@@ -12,6 +12,8 @@
 
 void cproxykeywords_KeywordCaller_Assert(int32_t refnum);
 
+void cproxykeywords_KeywordCaller_Bool(int32_t refnum);
+
 void cproxykeywords_KeywordCaller_Boolean(int32_t refnum);
 
 void cproxykeywords_KeywordCaller_Break(int32_t refnum);
@@ -72,6 +74,8 @@
 
 void cproxykeywords_KeywordCaller_New(int32_t refnum);
 
+void cproxykeywords_KeywordCaller_Nil(int32_t refnum);
+
 void cproxykeywords_KeywordCaller_Null(int32_t refnum);
 
 void cproxykeywords_KeywordCaller_Package(int32_t refnum);
diff --git a/bind/testdata/keywords.objc.h.golden b/bind/testdata/keywords.objc.h.golden
index f406b48..1ca7325 100644
--- a/bind/testdata/keywords.objc.h.golden
+++ b/bind/testdata/keywords.objc.h.golden
@@ -16,6 +16,7 @@
 @protocol KeywordsKeywordCaller <NSObject>
 - (void)abstract;
 - (void)assert;
+- (void)bool_;
 - (void)boolean;
 - (void)break;
 - (void)byte;
@@ -46,6 +47,7 @@
 - (void)long_;
 - (void)native;
 - (void)new;
+- (void)nil_;
 - (void)null;
 - (void)package;
 - (void)private;
@@ -82,6 +84,7 @@
 - (instancetype)initWithRef:(id)ref;
 - (void)abstract;
 - (void)assert;
+- (void)bool_;
 - (void)boolean;
 - (void)break;
 - (void)byte;
@@ -112,6 +115,7 @@
 - (void)long_;
 - (void)native;
 - (void)new;
+- (void)nil_;
 - (void)null;
 - (void)package;
 - (void)private;
diff --git a/bind/testdata/keywords.objc.m.golden b/bind/testdata/keywords.objc.m.golden
index 984f050..1ccbdb3 100644
--- a/bind/testdata/keywords.objc.m.golden
+++ b/bind/testdata/keywords.objc.m.golden
@@ -27,6 +27,11 @@
 	proxykeywords_KeywordCaller_Assert(refnum);
 }
 
+- (void)bool_ {
+	int32_t refnum = go_seq_go_to_refnum(self._ref);
+	proxykeywords_KeywordCaller_Bool(refnum);
+}
+
 - (void)boolean {
 	int32_t refnum = go_seq_go_to_refnum(self._ref);
 	proxykeywords_KeywordCaller_Boolean(refnum);
@@ -177,6 +182,11 @@
 	proxykeywords_KeywordCaller_New(refnum);
 }
 
+- (void)nil_ {
+	int32_t refnum = go_seq_go_to_refnum(self._ref);
+	proxykeywords_KeywordCaller_Nil(refnum);
+}
+
 - (void)null {
 	int32_t refnum = go_seq_go_to_refnum(self._ref);
 	proxykeywords_KeywordCaller_Null(refnum);
@@ -310,6 +320,13 @@
 	}
 }
 
+void cproxykeywords_KeywordCaller_Bool(int32_t refnum) {
+	@autoreleasepool {
+		KeywordsKeywordCaller* o = go_seq_objc_from_refnum(refnum);
+		[o bool_];
+	}
+}
+
 void cproxykeywords_KeywordCaller_Boolean(int32_t refnum) {
 	@autoreleasepool {
 		KeywordsKeywordCaller* o = go_seq_objc_from_refnum(refnum);
@@ -520,6 +537,13 @@
 	}
 }
 
+void cproxykeywords_KeywordCaller_Nil(int32_t refnum) {
+	@autoreleasepool {
+		KeywordsKeywordCaller* o = go_seq_objc_from_refnum(refnum);
+		[o nil_];
+	}
+}
+
 void cproxykeywords_KeywordCaller_Null(int32_t refnum) {
 	@autoreleasepool {
 		KeywordsKeywordCaller* o = go_seq_objc_from_refnum(refnum);
