diff --git a/src/browser.c b/src/browser.c
index 974b643121974292d238f1f476a1fd77b98a0210..194230e3b64971eaa07499d8d0d6d9e13689f60b 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -332,7 +332,8 @@ char *do_browser(char *path, DIR *dir)
 	} else if (func == do_exit) {
 	    /* Exit from the file browser. */
 	    break;
-	}
+	} else
+	    unbound_key(kbinput);
     }
     titlebar(NULL);
     edit_refresh();
diff --git a/src/help.c b/src/help.c
index 98066c55281417fb0b1c2063d1408017b01c7307..28add5e55ee3264301145ee52b1823a9dcbb380c 100644
--- a/src/help.c
+++ b/src/help.c
@@ -161,7 +161,8 @@ void do_help(void)
 	} else if (func == do_exit) {
 	    /* Exit from the help viewer. */
 	    break;
-	}
+	} else
+	    unbound_key(kbinput);
     }
 
     if (old_no_help) {
diff --git a/src/nano.c b/src/nano.c
index f7ef4a1a365e3adc19f34c8461aa293618df93a9..4492061a15627b869bdbae916115c04c42fc5f3c 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -1563,6 +1563,22 @@ void terminal_init(void)
 #endif
 }
 
+/* Say that an unbound key was struck, and if possible which one. */
+void unbound_key(int code)
+{
+    if (func_key)
+	statusbar(_("Unbound key"));
+    else if (meta_key) {
+	if (0x60 < code && code < 0x7B)
+	    code -= 0x20;
+	statusbar(_("Unbound key: M-%c"), code);
+    } else if (code < 0x20)
+	statusbar(_("Unbound key: ^%c"), code + 0x40);
+    else
+	statusbar(_("Unbound key: %c"), code);
+    beep();
+}
+
 /* Read in a character, interpret it as a shortcut or toggle if
  * necessary, and return it.
  * If allow_funcs is FALSE, don't actually run any functions associated
@@ -1612,8 +1628,7 @@ int do_input(bool allow_funcs)
      * function key, and it's not a shortcut or toggle, throw it out. */
     if (!have_shortcut) {
 	if (is_ascii_cntrl_char(input) || meta_key || func_key) {
-	    statusbar(_("Unknown Command"));
-	    beep();
+	    unbound_key(input);
 	    meta_key = FALSE;
 	    func_key = FALSE;
 	    input = ERR;
diff --git a/src/proto.h b/src/proto.h
index 418a9d013590a638f51be03c5065950b1fb4904a..59a44c0681fd2e4b715d786af18c8094692f58e1 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -498,6 +498,7 @@ void enable_signals(void);
 void disable_flow_control(void);
 void enable_flow_control(void);
 void terminal_init(void);
+void unbound_key(int code);
 int do_input(bool allow_funcs);
 #ifndef DISABLE_MOUSE
 int do_mouse(void);