diff --git a/src/winio.c b/src/winio.c
index 7237b8ac30b35b87f409d56219b7298c7f7a1bfc..8a5d70a3665761bbf502e23957f01b1c43493649 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -667,7 +667,7 @@ int parse_kbinput(WINDOW *win)
 #endif
 	/* Slang doesn't support KEY_CANCEL. */
 	case KEY_CANCEL:
-	    return first_sc_for(currmenu, do_cancel)->keycode;
+	    return sc_seq_or(do_cancel, 0x03);
 #endif
 #ifdef KEY_SUSPEND
 #ifdef KEY_SSUSPEND