diff -r a206f952668e Python/ceval.c --- a/Python/ceval.c Thu Aug 08 18:28:53 2013 +0100 +++ b/Python/ceval.c Thu Aug 22 23:14:14 2013 +0200 @@ -4561,6 +4561,14 @@ { if (v != NULL) { Py_ssize_t x; + if (PyLong_Check(v)) { + /* super fast path for 'small' integers */ + Py_ssize_t s = Py_SIZE(v); + if (s >= -1 && s <= 1) { + *pi = PyLong_AsSsize_t(v); + return 1; + } + } if (PyIndex_Check(v)) { x = PyNumber_AsSsize_t(v, NULL); if (x == -1 && PyErr_Occurred())