diff --git a/Objects/listobject.c b/Objects/listobject.c
index f753643..10d9c00 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -2277,12 +2277,20 @@
 {
     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|O&O&:index", &v,
-                                _PyEval_SliceIndex, &start,
-                                _PyEval_SliceIndex, &stop))
+    if (!PyArg_ParseTuple(args, "O|OO:index", &v, &start_obj, &stop_obj))
         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 3249ccc..1f2ab55 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -510,12 +510,19 @@
 tupleindex(PyTupleObject *self, PyObject *args)
 {
     Py_ssize_t i, start=0, stop=Py_SIZE(self);
-    PyObject *v;
+    PyObject *v, *start_obj = NULL, *stop_obj = NULL;
 
-    if (!PyArg_ParseTuple(args, "O|O&O&:index", &v,
-                                _PyEval_SliceIndex, &start,
-                                _PyEval_SliceIndex, &stop))
+    if (!PyArg_ParseTuple(args, "O|OO:index", &v, &start_obj, &stop_obj))
         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)
