Index: Modules/_cursesmodule.c =================================================================== --- Modules/_cursesmodule.c (revision 73552) +++ Modules/_cursesmodule.c (working copy) @@ -860,6 +860,7 @@ { int x, y; int rtn; + const char *knp; switch (PyTuple_Size(args)) { case 0: @@ -882,14 +883,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 { #if defined(__NetBSD__) - return PyString_FromString(unctrl(rtn)); + knp = unctrl(rtn); + return PyString_FromString(knp); #else - return PyString_FromString((char *)keyname(rtn)); + knp = keyname(rtn); + return PyString_FromString((knp == NULL) ? "" : knp); #endif + } } static PyObject *