diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py
index 1b3489c..2f7c04c 100644
--- a/Lib/test/test_curses.py
+++ b/Lib/test/test_curses.py
@@ -257,6 +257,10 @@
         if curses.LINES != lines - 1 or curses.COLS != cols + 1:
             raise RuntimeError, "Expected resizeterm to update LINES and COLS"
 
+def test_issue6243(stdscr):
+    curses.ungetch(1025)
+    stdscr.getkey()
+
 def main(stdscr):
     curses.savetty()
     try:
@@ -264,6 +268,7 @@
         window_funcs(stdscr)
         test_userptr_without_set(stdscr)
         test_resize_term(stdscr)
+        test_issue6243(stdscr)
     finally:
         curses.resetty()
 
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index cd143a4..53fa432 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -882,14 +882,17 @@
     /* getch() returns ERR in nodelay mode */
     PyErr_SetString(PyCursesError, "no input");
     return NULL;
-  } else if (rtn<=255)
+  } else if (rtn<=255) {
     return Py_BuildValue("c", rtn);
-  else
+  } else {
+    const char *knp;
 #if defined(__NetBSD__)
-    return PyString_FromString(unctrl(rtn));
+    knp = unctrl(rtn);
 #else
-    return PyString_FromString((char *)keyname(rtn));
+    knp = keyname(rtn);
 #endif
+    return PyString_FromString((knp == NULL) ? "" : knp);
+  }
 }
 
 static PyObject *
