diff --git a/Lib/test/test_class.py b/Lib/test/test_class.py
index 0f25101..db75b93 100644
--- a/Lib/test/test_class.py
+++ b/Lib/test/test_class.py
@@ -350,6 +350,19 @@
         AllTests.__delslice__ = delslice
 
 
+    @test_support.cpython_only
+    def testDelItem(self):
+        class A:
+            ok = False
+            def __delitem__(self, key):
+                self.ok = True
+        a = A()
+        # Subtle: we need to call PySequence_SetItem, not PyMapping_SetItem.
+        from _testcapi import sequence_delitem
+        sequence_delitem(a, 2)
+        self.assertTrue(a.ok)
+
+
     def testUnaryOps(self):
         testme = AllTests()
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 03c4569..6fdcc6f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -9,6 +9,9 @@
 Core and Builtins
 -----------------
 
+- Issue #13186: Fix __delitem__ on old-style instances when invoked through
+  PySequence_DelItem.
+
 - Issue #13156: Revert the patch for issue #10517 (reset TLS upon fork()),
   which was only relevant for the native pthread TLS implementation.
 
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index 23a5691..9c45274 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -1639,6 +1639,19 @@
     return PyErr_NewExceptionWithDoc(name, doc, base, dict);
 }
 
+static PyObject *
+sequence_delitem(PyObject *self, PyObject *args)
+{
+    PyObject *seq;
+    Py_ssize_t i;
+
+    if (!PyArg_ParseTuple(args, "On", &seq, &i))
+        return NULL;
+    if (PySequence_DelItem(seq, i) < 0)
+        return NULL;
+    Py_RETURN_NONE;
+}
+
 static PyMethodDef TestMethods[] = {
     {"raise_exception",         raise_exception,                 METH_VARARGS},
     {"test_config",             (PyCFunction)test_config,        METH_NOARGS},
@@ -1695,6 +1708,7 @@
     {"code_newempty", code_newempty,                     METH_VARARGS},
     {"make_exception_with_doc", (PyCFunction)make_exception_with_doc,
      METH_VARARGS | METH_KEYWORDS},
+    {"sequence_delitem", (PyCFunction)sequence_delitem, METH_VARARGS},
     {NULL, NULL} /* sentinel */
 };
 
diff --git a/Objects/classobject.c b/Objects/classobject.c
index 0832531..161906a 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -1221,7 +1221,7 @@
     if (func == NULL)
         return -1;
     if (item == NULL)
-        arg = PyInt_FromSsize_t(i);
+        arg = Py_BuildValue("(n)", i);
     else
         arg = Py_BuildValue("(nO)", i, item);
     if (arg == NULL) {
