diff --git a/src/nano.c b/src/nano.c
index 0a744948a2a234ddf02695933d0b581d4ad6e2e7..6a0aeb31e0ce3589da53701ebec3a9471fe312d8 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -1303,8 +1303,8 @@ int do_input(bool *meta_key, bool *func_key, bool *s_or_t, bool
 	if (is_ascii_cntrl_char(input) || *meta_key == TRUE ||
 		*func_key == TRUE) {
 	    statusbar(_("Unknown Command"));
-	    if (*meta_key == TRUE)
-		*meta_key = FALSE;
+	    *meta_key = FALSE;
+	    *func_key = FALSE;
 	    input = ERR;
 	}
     }
diff --git a/src/prompt.c b/src/prompt.c
index 07d990319f8fd1d4bdba14f67b639f619ae1598d..e9540c7cc04733a61712c64102ae2fa6ba461a34 100644
--- a/src/prompt.c
+++ b/src/prompt.c
@@ -105,8 +105,8 @@ int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t,
     if (*s_or_t == FALSE) {
 	if (is_ascii_cntrl_char(input) || *meta_key == TRUE ||
 		*func_key == TRUE) {
-	    if (*meta_key == TRUE)
-		*meta_key = FALSE;
+	    *meta_key = FALSE;
+	    *func_key = FALSE;
 	    input = ERR;
 	}
     }