diff --git a/Objects/enumobject.c b/Objects/enumobject.c
index dfa738d..b1e412d 100644
--- a/Objects/enumobject.c
+++ b/Objects/enumobject.c
@@ -4,10 +4,10 @@
 
 typedef struct {
 	PyObject_HEAD
-	long      en_index;        /* current index of enumeration */
+	Py_ssize_t en_index;	   /* current index of enumeration */
 	PyObject* en_sit;          /* secondary iterator of enumeration */
 	PyObject* en_result;	   /* result tuple  */
-	PyObject* en_longindex;	   /* index for sequences >= LONG_MAX */
+	PyObject* en_longindex;	   /* index for sequences >= PY_SSIZE_T_MAX */
 } enumobject;
 
 static PyObject *
@@ -25,18 +25,19 @@
 	en = (enumobject *)type->tp_alloc(type, 0);
 	if (en == NULL)
 		return NULL;
-	if (start) {
+	if (start != NULL) {
 		start = PyNumber_Index(start);
 		if (start == NULL) {
 			Py_DECREF(en);
 			return NULL;
 		}
-		if (PyLong_Check(start)) {
-			en->en_index = LONG_MAX;
+		assert(PyInt_Check(start) || PyLong_Check(start));
+		en->en_index = PyInt_AsSsize_t(start);
+		if (en->en_index == -1 && PyErr_Occurred()) {
+			PyErr_Clear();
+			en->en_index = PY_SSIZE_T_MAX;
 			en->en_longindex = start;
 		} else {
-			assert(PyInt_Check(start));
-			en->en_index = PyInt_AsLong(start);
 			en->en_longindex = NULL;
 			Py_DECREF(start);
 		}
@@ -85,7 +86,7 @@
 	PyObject *stepped_up;
 
 	if (en->en_longindex == NULL) {
-		en->en_longindex = PyInt_FromLong(LONG_MAX);
+		en->en_longindex = PyInt_FromSsize_t(PY_SSIZE_T_MAX);
 		if (en->en_longindex == NULL)
 			return NULL;
 	}
@@ -130,10 +131,10 @@
 	if (next_item == NULL)
 		return NULL;
 
-	if (en->en_index == LONG_MAX)
+	if (en->en_index == PY_SSIZE_T_MAX)
 		return enum_next_long(en, next_item);
 
-	next_index = PyInt_FromLong(en->en_index);
+	next_index = PyInt_FromSsize_t(en->en_index);
 	if (next_index == NULL) {
 		Py_DECREF(next_item);
 		return NULL;
