diff --git a/ChangeLog b/ChangeLog
index 3cc6a3aaa00e1a652b339c87c0cc3ab6032fd2a9..6ca2020836748226831335b1ab18cb4f32d877a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 2016-01-07  Benno Schulenberg  <bensberg@justemail.net>
 	* src/global.c (assign_keyinfo): Delete two unneeded #ifdefs: if
 	they /could/ be false, the H and E keys would stop working.
+	* src/global.c (assign_keyinfo): Add a comment and use a symbol.
 
 2016-01-04  Benno Schulenberg  <bensberg@justemail.net>
 	* src/global.c (shortcut_init): Nowadays the functions are defined
diff --git a/src/global.c b/src/global.c
index cd1dccf036b7a602f20c2b8fc3aea0e30de9d763..294ccdbcde194229295d1b12b19d641730b454bf 100644
--- a/src/global.c
+++ b/src/global.c
@@ -441,8 +441,11 @@ void assign_keyinfo(sc *s)
 	    s->seq = KEY_DC;
 	else if (!strcasecmp(s->keystr, "Bsp"))
 	    s->seq = KEY_BACKSPACE;
+	/* The Tab and Enter keys don't actually produce special codes
+	 * but the exact integer values of ^I and ^M.  Rebinding the
+	 * latter therefore also rebinds Tab and Enter. */
 	else if (!strcasecmp(s->keystr, "Tab"))
-	    s->seq = 9;
+	    s->seq = NANO_CONTROL_I;
 	else if (!strcasecmp(s->keystr, "Enter"))
 	    s->seq = KEY_ENTER;
 	else if (!strcasecmp(s->keystr, "PgUp"))