diff -r 814927ff4ef2 Objects/abstract.c --- a/Objects/abstract.c Fri Jul 13 22:46:41 2012 +0200 +++ b/Objects/abstract.c Sat Jul 14 17:24:49 2012 -0700 @@ -126,7 +126,12 @@ PyErr_Clear(); return defaultvalue; } - rv = PyLong_Check(ro) ? PyLong_AsSsize_t(ro) : defaultvalue; + if (PyInt_Check(ro)) + rv = PyInt_AS_LONG((PyIntObject*)ro); + else if (PyLong_Check(ro)) + rv = PyLong_AsSsize_t(ro); + else + rv = defaultvalue; Py_DECREF(ro); return rv; }