diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 3362655..e5a4610 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -953,6 +953,43 @@
 }
 
 static PyObject *
+dict_get(mp, args)
+	register dictobject *mp;
+	PyObject *args;
+{
+	PyObject *key;
+	PyObject *failobj = NULL;
+	PyObject *val = NULL;
+	long hash;
+
+	if (mp->ma_table == NULL)
+		goto finally;
+
+	if (!PyArg_ParseTuple(args, "O|O", &key, &failobj))
+		return NULL;
+
+	if (failobj == NULL)
+		failobj = Py_None;
+
+#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;
+	Py_INCREF(val);
+	return val;
+}
+
+
+static PyObject *
 dict_clear(mp, args)
 	register dictobject *mp;
 	PyObject *args;
@@ -972,6 +1009,7 @@
 	{"update",	(PyCFunction)dict_update},
 	{"clear",	(PyCFunction)dict_clear},
 	{"copy",	(PyCFunction)dict_copy},
+	{"get",         (PyCFunction)dict_get, 1},
 	{NULL,		NULL}		/* sentinel */
 };
 
