diff -r 7efe1a5239e3 Objects/rangeobject.c --- a/Objects/rangeobject.c Fri Jun 17 11:13:03 2016 +0300 +++ b/Objects/rangeobject.c Fri Jun 17 15:58:58 2016 +0300 @@ -30,12 +30,8 @@ validate_step(PyObject *step) step = PyNumber_Index(step); if (step) { - Py_ssize_t istep = PyNumber_AsSsize_t(step, NULL); - if (istep == -1 && PyErr_Occurred()) { - /* Ignore OverflowError, we know the value isn't 0. */ - PyErr_Clear(); - } - else if (istep == 0) { + assert(PyLong_Check(step)); + if (_PyLong_Sign(step) == 0) { PyErr_SetString(PyExc_ValueError, "range() arg 3 must not be zero"); Py_CLEAR(step);