Index: Python/errors.c =================================================================== --- Python/errors.c (Revision 58966) +++ Python/errors.c (Arbeitskopie) @@ -626,7 +626,7 @@ PyObject *f, *t, *v, *tb; PyErr_Fetch(&t, &v, &tb); f = PySys_GetObject("stderr"); - if (f != NULL) { + if (f != NULL && f != Py_None) { PyFile_WriteString("Exception ", f); if (t) { PyObject* moduleName; Index: Python/pythonrun.c =================================================================== --- Python/pythonrun.c (Revision 58966) +++ Python/pythonrun.c (Arbeitskopie) @@ -335,7 +335,7 @@ PyObject *ferr = PySys_GetObject("stderr"); PyObject *tmp; - if (fout != NULL) { + if (fout != NULL && fout != Py_None) { tmp = PyObject_CallMethod(fout, "flush", ""); if (tmp == NULL) PyErr_Clear(); @@ -343,7 +343,7 @@ Py_DECREF(tmp); } - if (ferr != NULL) { + if (ferr != NULL || ferr != Py_None) { tmp = PyObject_CallMethod(ferr, "flush", ""); if (tmp == NULL) PyErr_Clear(); @@ -693,6 +693,8 @@ m = PyImport_ImportModule("site"); if (m == NULL) { f = PySys_GetObject("stderr"); + if (f == NULL || f == Py_None) + return; if (Py_VerboseFlag) { PyFile_WriteString( "'import site' failed; traceback:\n", f); @@ -900,7 +902,7 @@ if (fp == stdin) { /* Fetch encoding from sys.stdin */ v = PySys_GetObject("stdin"); - if (!v) + if (v == NULL || v == Py_None) return -1; oenc = PyObject_GetAttrString(v, "encoding"); if (!oenc) @@ -1293,7 +1295,10 @@ int err = 0; PyObject *f = PySys_GetObject("stderr"); Py_INCREF(value); - if (f == NULL) { + if (f == Py_None) { + /* pass */ + } + else if (f == NULL) { _PyObject_Dump(value); fprintf(stderr, "lost sys.stderr\n"); } Index: Python/bltinmodule.c =================================================================== --- Python/bltinmodule.c (Revision 58966) +++ Python/bltinmodule.c (Arbeitskopie) @@ -1265,17 +1265,17 @@ return NULL; /* Check that stdin/out/err are intact */ - if (fin == NULL) { + if (fin == NULL || fin == Py_None) { PyErr_SetString(PyExc_RuntimeError, "input(): lost sys.stdin"); return NULL; } - if (fout == NULL) { + if (fout == NULL || fout == Py_None) { PyErr_SetString(PyExc_RuntimeError, "input(): lost sys.stdout"); return NULL; } - if (ferr == NULL) { + if (ferr == NULL || ferr == Py_None) { PyErr_SetString(PyExc_RuntimeError, "input(): lost sys.stderr"); return NULL; Index: Python/sysmodule.c =================================================================== --- Python/sysmodule.c (Revision 58966) +++ Python/sysmodule.c (Arbeitskopie) @@ -89,7 +89,7 @@ if (PyObject_SetAttrString(builtins, "_", Py_None) != 0) return NULL; outf = PySys_GetObject("stdout"); - if (outf == NULL) { + if (outf == NULL || outf == Py_None) { PyErr_SetString(PyExc_RuntimeError, "lost sys.stdout"); return NULL; } Index: Modules/_ctypes/callbacks.c =================================================================== --- Modules/_ctypes/callbacks.c (Revision 58966) +++ Modules/_ctypes/callbacks.c (Arbeitskopie) @@ -17,7 +17,7 @@ va_start(marker, msg); vsnprintf(buf, sizeof(buf), msg, marker); va_end(marker); - if (f) + if (f != NULL && f != Py_None) PyFile_WriteString(buf, f); PyErr_Print(); } Index: Modules/threadmodule.c =================================================================== --- Modules/threadmodule.c (Revision 58966) +++ Modules/threadmodule.c (Arbeitskopie) @@ -429,7 +429,7 @@ PySys_WriteStderr( "Unhandled exception in thread started by "); file = PySys_GetObject("stderr"); - if (file) + if (file != NULL && file != Py_None) PyFile_WriteObject(boot->func, file, 0); else PyObject_Print(boot->func, stderr, 0); Index: Modules/_cursesmodule.c =================================================================== --- Modules/_cursesmodule.c (Revision 58966) +++ Modules/_cursesmodule.c (Arbeitskopie) @@ -2010,7 +2010,7 @@ sys_stdout = PySys_GetObject("stdout"); - if (sys_stdout == NULL) { + if (sys_stdout == NULL || sys_stdout == Py_None) { PyErr_SetString( PyCursesError, "lost sys.stdout");