diff --git a/ChangeLog b/ChangeLog
index a0f20aaabc7f672c9ae1382dc5a81ff1d55952c6..dbd6e8d752c21353dc67b4135ac7c9fc53b7329d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
 2014-05-13  Benno Schulenberg  <bensberg@justemail.net>
 	* src/text.c (do_linter): Make an error message somewhat clearer.
+	* src/rcfile.c (parse_binding): Improve another error message.
 
 2014-05-12  Benno Schulenberg  <bensberg@justemail.net>
 	* src/text.c (do_spell): Provide startup feedback, as for the linter.
diff --git a/src/rcfile.c b/src/rcfile.c
index 36499cfe220be260d90588cc4012495dcf5a6855..0fe2a5dc4d00e1f057c603d24ae33491058790b9 100644
--- a/src/rcfile.c
+++ b/src/rcfile.c
@@ -479,7 +479,7 @@ void parse_binding(char *ptr, bool dobind)
     if (dobind)
 	fprintf(stderr, "newsc address is now %ld, assigned func = %ld, menu = %x\n",
 	    (long)&newsc, (long)newsc->scfunc, menu);
-   else
+    else
 	fprintf(stderr, "unbinding \"%s\" from menu %x\n", keycopy, menu);
 #endif
 
@@ -494,7 +494,8 @@ void parse_binding(char *ptr, bool dobind)
 #endif
 
 	if (check_bad_binding(newsc)) {
-	    rcfile_error(N_("Sorry, keystr \"%s\" is an illegal binding"), newsc->keystr);
+	    rcfile_error(N_("Sorry, keystroke \"%s\" may not be rebound"), newsc->keystr);
+	    free(newsc);
 	    return;
 	}
     }