Index: Objects/dictobject.c =================================================================== --- Objects/dictobject.c (revision 85893) +++ Objects/dictobject.c (working copy) @@ -1820,8 +1820,7 @@ Py_INCREF(deflt); return deflt; } - PyErr_SetString(PyExc_KeyError, - "pop(): dictionary is empty"); + set_key_error(key); return NULL; } if (!PyUnicode_CheckExact(key) || Index: Lib/test/test_dict.py =================================================================== --- Lib/test/test_dict.py (revision 85893) +++ Lib/test/test_dict.py (working copy) @@ -329,11 +329,19 @@ k, v = 'abc', 'def' d[k] = v self.assertRaises(KeyError, d.pop, 'ghi') + try: + d.pop('ghi') + except KeyError as e: + self.assertEquals(e.args[0], 'ghi') self.assertEqual(d.pop(k), v) self.assertEqual(len(d), 0) self.assertRaises(KeyError, d.pop, k) + try: + d.pop(k) + except KeyError as e: + self.assertEquals(e.args[0], k) self.assertEqual(d.pop(k, v), v) d[k] = v