diff -r 5a8301002f5a Modules/spwdmodule.c --- a/Modules/spwdmodule.c Thu Jan 09 21:41:23 2014 -0600 +++ b/Modules/spwdmodule.c Fri Jan 10 17:58:46 2014 +0800 @@ -153,6 +153,8 @@ if ((d = PyList_New(0)) == NULL) return NULL; setspent(); + if (errno != 0) + return PyErr_SetFromErrno(PyExc_OSError); while ((p = getspent()) != NULL) { PyObject *v = mkspent(p); if (v == NULL || PyList_Append(d, v) != 0) {