diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 4fafb8a..ddd8eb8 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -950,6 +950,41 @@
 
 
 static PyObject *
+dict_setdefault(register dictobject *mp, PyObject *args)
+{
+	PyObject *key;
+	PyObject *failobj = Py_None;
+	PyObject *val = NULL;
+	long hash;
+
+	if (!PyArg_ParseTuple(args, "O|O:setdefault", &key, &failobj))
+		return NULL;
+	if (mp->ma_table == NULL)
+		goto finally;
+
+#ifdef CACHE_HASH
+	if (!PyString_Check(key) ||
+	    (hash = ((PyStringObject *) key)->ob_shash) == -1)
+#endif
+	{
+		hash = PyObject_Hash(key);
+		if (hash == -1)
+			return NULL;
+	}
+	val = lookdict(mp, key, hash)->me_value;
+
+  finally:
+	if (val == NULL) {
+		val = failobj;
+		if (PyDict_SetItem((PyObject*)mp, key, failobj))
+			val = NULL;
+	}
+	Py_XINCREF(val);
+	return val;
+}
+
+
+static PyObject *
 dict_clear(register dictobject *mp, PyObject *args)
 {
 	if (!PyArg_NoArgs(args))
@@ -993,6 +1028,7 @@
 	{"clear",	(PyCFunction)dict_clear},
 	{"copy",	(PyCFunction)dict_copy},
 	{"get",         (PyCFunction)dict_get,          METH_VARARGS},
+	{"setdefault",  (PyCFunction)dict_setdefault,   METH_VARARGS},
 	{NULL,		NULL}		/* sentinel */
 };
 
