diff --git a/ChangeLog b/ChangeLog
index c11354868323d455109aa63123c5836a261e1866..d665ee04d92811a22bcd46ce7675e4b70751f328 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -115,7 +115,7 @@ Cvs code -
 	- Add Alt-whatever-[a-d] support as well as Alt-whatever-[A-D].
   main()
 	- Code to silently process "-g" and "-j" (Rocco)
-	- Added Alt-[-[-7,8 support for home/end keys (Jeff Teunissen).
+	- Added Alt-[-7,8 support for home/end keys (Jeff Teunissen).
   signal_init()
 	- Reorder sigaction calls, use sigfillset() to stop SIGTSTP and
 	  SIGCONT from being interrupted, allows suspending nano
diff --git a/nano.c b/nano.c
index ab4578317850505f300d2429c5bcff4761990223..8492d1831b65f8adc073bdda32054e133231138f 100644
--- a/nano.c
+++ b/nano.c
@@ -2611,29 +2611,18 @@ int main(int argc, char *argv[])
 		    kbinput = KEY_NPAGE;
 		    wgetch(edit);
 		    break;
+		case '7':
+		    kbinput = KEY_HOME;
+		    wgetch(edit);
+		    break;
+		case '8':
+		    kbinput = KEY_END;
+		    wgetch(edit);
+		    break;
 		case '[':	/* Alt-[-[-[A-E], F1-F5 in linux console */
 		    kbinput = wgetch(edit);
-		    switch(kbinput) {
-		    case 'A':
-		    case 'B':
-		    case 'C':
-		    case 'D':
-		    case 'E':
+		    if (kbinput >= 'A' && kbinput <= 'E')
 			kbinput = KEY_F(kbinput - 64);
-		 	break;
-		    case 7:
-			kbinput = KEY_HOME;
-			break;
-		    case 8:
-			kbinput = KEY_END;
-			break;
-#ifdef DEBUG
-		    default:
-			fprintf(stderr, _("I got Alt-[-[-%c! (%d)\n"),
-				kbinput, kbinput);
-			break;
-#endif
-		    }
 		    break;
 		case 'A':
 		case 'B':