diff --git a/Lib/test/list_tests.py b/Lib/test/list_tests.py
index 9528052..b8d6d6b 100644
--- a/Lib/test/list_tests.py
+++ b/Lib/test/list_tests.py
@@ -365,13 +365,6 @@
         self.assertEqual(u.index(0, 3), 3)
         self.assertEqual(u.index(0, 3, 4), 3)
         self.assertRaises(ValueError, u.index, 2, 0, -10)
-        self.assertEqual(u.index(1, None), 4)
-        self.assertEqual(u.index(1, None, None), 4)
-        self.assertEqual(u.index(1, 0, None), 4)
-        self.assertEqual(u.index(1, None, 6), 4)
-        self.assertRaises(ValueError, u.index, -1, 3)
-        self.assertRaises(ValueError, u.index, -1, 3, None)
-        self.assertRaises(ValueError, u.index, 1, None, 4)
 
         self.assertRaises(TypeError, u.index)
 
diff --git a/Lib/test/seq_tests.py b/Lib/test/seq_tests.py
index 0c8cf90..f5e4e0e 100644
--- a/Lib/test/seq_tests.py
+++ b/Lib/test/seq_tests.py
@@ -363,13 +363,6 @@
         self.assertEqual(u.index(0, 3), 3)
         self.assertEqual(u.index(0, 3, 4), 3)
         self.assertRaises(ValueError, u.index, 2, 0, -10)
-        self.assertEqual(u.index(1, None), 4)
-        self.assertEqual(u.index(1, None, None), 4)
-        self.assertEqual(u.index(1, 0, None), 4)
-        self.assertEqual(u.index(1, None, 6), 4)
-        self.assertRaises(ValueError, u.index, -1, 3)
-        self.assertRaises(ValueError, u.index, -1, 3, None)
-        self.assertRaises(ValueError, u.index, 1, None, 4)
 
         self.assertRaises(TypeError, u.index)
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 9911360..43e2763 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -11,9 +11,6 @@
 
 - Remove Py3k warning for callable.
 
-- Issue #13340: Accept None as start and stop parameters for
-  list.index() and tuple.index().
-
 - Issue #10519: Avoid unnecessary recursive function calls in
   setobject.c.
 
diff --git a/Objects/listobject.c b/Objects/listobject.c
index 10d9c00..f753643 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -2277,20 +2277,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 1f2ab55..3249ccc 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -510,19 +510,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)
