diff --git a/Objects/abstract.c b/Objects/abstract.c
index 399656ffe0058de83f8638cd97fc5e414bc2679e..9d1aaf0cdbbd2d22065e626c2253c96c98086a5e 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -1248,13 +1248,13 @@ PySequence_GetItem(PyObject *s, Py_ssize_t i)
 }
 
 static PyObject *
-sliceobj_from_intint(Py_ssize_t i, Py_ssize_t j)
+sliceobj_from_ssizet_ssizet(Py_ssize_t i, Py_ssize_t j)
 {
 	PyObject *start, *end, *slice;
-	start = PyInt_FromLong((long)i);
+	start = PyInt_FromSsize_t(i);
 	if (!start)
 		return NULL;
-	end = PyInt_FromLong((long)j);
+	end = PyInt_FromSsize_t(j);
 	if (!end) {
 		Py_DECREF(start);
 		return NULL;
@@ -1289,7 +1289,7 @@ PySequence_GetSlice(PyObject *s, Py_ssize_t i1, Py_ssize_t i2)
 		return m->sq_slice(s, i1, i2);
 	} else if ((mp = s->ob_type->tp_as_mapping) && mp->mp_subscript) {
 		PyObject *res;
-		PyObject *slice = sliceobj_from_intint(i1, i2);
+		PyObject *slice = sliceobj_from_ssizet_ssizet(i1, i2);
 		if (!slice)
 			return NULL;
 		res = mp->mp_subscript(s, slice);
@@ -1381,7 +1381,7 @@ PySequence_SetSlice(PyObject *s, Py_ssize_t i1, Py_ssize_t i2, PyObject *o)
 		return m->sq_ass_slice(s, i1, i2, o);
 	} else if ((mp = s->ob_type->tp_as_mapping) && mp->mp_ass_subscript) {
 		int res;
-		PyObject *slice = sliceobj_from_intint(i1, i2);
+		PyObject *slice = sliceobj_from_ssizet_ssizet(i1, i2);
 		if (!slice)
 			return -1;
 		res = mp->mp_ass_subscript(s, slice, o);