diff -r 4b5e8f7d1ac4 Objects/classobject.c --- a/Objects/classobject.c Fri Jul 20 09:51:20 2012 +0100 +++ b/Objects/classobject.c Fri Jul 20 14:46:14 2012 +0300 @@ -244,8 +244,10 @@ else { klassname = _PyObject_GetAttrId(klass, &PyId___name__); if (klassname == NULL) { - if (!PyErr_ExceptionMatches(PyExc_AttributeError)) + if (!PyErr_ExceptionMatches(PyExc_AttributeError)) { + Py_XDECREF(funcname); return NULL; + } PyErr_Clear(); } else if (!PyUnicode_Check(klassname)) {