diff --git a/src/winio.c b/src/winio.c
index 5483aad02130ff396a2c3abb4ee14a022fa53423..4388ece39e1e1292c8c580042c8cc5caad5bd29c 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -406,9 +406,6 @@ int parse_kbinput(WINDOW *win)
 				retval = controlleft;
 				break;
 #endif
-			    default:
-				retval = ERR;
-				break;
 			}
 			double_esc = FALSE;
 			escapes = 0;
@@ -472,7 +469,8 @@ int parse_kbinput(WINDOW *win)
 				retval = *kbinput;
 			    }
 			}
-		    } else if (*kbinput=='[') {
+		    } else if (*kbinput == '[' && key_buffer_len > 0 &&
+				'A' <= *key_buffer && *key_buffer <= 'D') {
 			/* This is an iTerm2 sequence: ^[ ^[ [ X. */
 			double_esc = TRUE;
 		    } else {