diff --git a/ChangeLog b/ChangeLog
index fad1e90bff8b03df3a7c034181089d1f7b6ea54d..092f9e564b2cdeb88266158bec5b61eb60a717a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
 2007-04-18  David Lawrence Ramsey  <pooka109@gmail.com>
 
+	* winio.c (parse_kbinput): Interpret Cancel and Shift-Cancel.
 	* winio.c (get_escape_seq_kbinput): Add missing comments.
 
 2007-04-17  David Lawrence Ramsey  <pooka109@gmail.com>
diff --git a/src/winio.c b/src/winio.c
index 5527557d02413d10bba3a6d154342ad867910636..7f64847652da3a882376d35caac70b2656a58a26 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -558,6 +558,12 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key)
 		retval = ERR;
 		break;
 #endif
+#ifdef KEY_CANCEL
+	    /* Slang doesn't support KEY_CANCEL. */
+	    case KEY_CANCEL:
+		retval = NANO_CANCEL_KEY;
+		break;
+#endif
 #ifdef KEY_END
 	    /* HP-UX 10-11 doesn't support KEY_END. */
 	    case KEY_END:
@@ -571,6 +577,12 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key)
 		retval = ERR;
 		break;
 #endif
+#ifdef KEY_SCANCEL
+	    /* Slang doesn't support KEY_SCANCEL. */
+	    case KEY_SCANCEL:
+		retval = NANO_CANCEL_KEY;
+		break;
+#endif
 #ifdef KEY_SDC
 	    /* Slang doesn't support KEY_SDC. */
 	    case KEY_SDC: