diff --git a/Include/abstract.h b/Include/abstract.h
index 682c2f2..226e5e8 100644
--- a/Include/abstract.h
+++ b/Include/abstract.h
@@ -445,6 +445,14 @@
 	 statement: o[key]=v.
        */
 
+     DL_IMPORT(int) PyObject_DelItemString(PyObject *o, char *key);
+
+       /*
+         Remove the mapping for object, key, from the object *o.
+         Returns -1 on failure.  This is equivalent to
+         the Python statement: del o[key].
+       */
+
      DL_IMPORT(int) PyObject_DelItem(PyObject *o, PyObject *key);
 
        /*
diff --git a/Objects/abstract.c b/Objects/abstract.c
index 5931449..2acfd08 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -174,6 +174,24 @@
 	return -1;
 }
 
+int
+PyObject_DelItemString(PyObject *o, char *key)
+{
+	PyObject *okey;
+	int ret;
+
+	if (o == NULL || key == NULL) {
+		null_error();
+		return -1;
+	}
+	okey = PyString_FromString(key);
+	if (okey == NULL)
+		return -1;
+	ret = PyObject_DelItem(o, okey);
+	Py_DECREF(okey);
+	return ret;
+}
+
 int PyObject_AsCharBuffer(PyObject *obj,
 			  const char **buffer,
 			  int *buffer_len)
