diff --git a/Objects/listobject.c b/Objects/listobject.c
index 5097956..00de597 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -2109,20 +2109,12 @@
 {
     Py_ssize_t i, start=0, stop=Py_SIZE(self);
     PyObject *v, *format_tuple, *err_string;
-    PyObject *start_obj = NULL, *stop_obj = NULL;
     static PyObject *err_format = NULL;
 
-    if (!PyArg_ParseTuple(args, "O|OO:index", &v, &start_obj, &stop_obj))
+    if (!PyArg_ParseTuple(args, "O|O&O&:index", &v,
+                                _PyEval_SliceIndex, &start,
+                                _PyEval_SliceIndex, &stop))
         return NULL;
-
-    if (start_obj != Py_None)
-        if (!_PyEval_SliceIndex(start_obj, &start))
-            return NULL;
-
-    if (stop_obj != Py_None)
-        if (!_PyEval_SliceIndex(stop_obj, &stop))
-            return NULL;
-
     if (start < 0) {
         start += Py_SIZE(self);
         if (start < 0)
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index 6f893d9..8aacd12 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -483,19 +483,12 @@
 tupleindex(PyTupleObject *self, PyObject *args)
 {
     Py_ssize_t i, start=0, stop=Py_SIZE(self);
-    PyObject *v, *start_obj = NULL, *stop_obj = NULL;
+    PyObject *v;
 
-    if (!PyArg_ParseTuple(args, "O|OO:index", &v, &start_obj, &stop_obj))
+    if (!PyArg_ParseTuple(args, "O|O&O&:index", &v,
+                                _PyEval_SliceIndex, &start,
+                                _PyEval_SliceIndex, &stop))
         return NULL;
-
-    if (start_obj != Py_None)
-        if (!_PyEval_SliceIndex(start_obj, &start))
-            return NULL;
-
-    if (stop_obj != Py_None)
-        if (!_PyEval_SliceIndex(stop_obj, &stop))
-            return NULL;
-
     if (start < 0) {
         start += Py_SIZE(self);
         if (start < 0)
