Index: Misc/NEWS =================================================================== --- Misc/NEWS (revision 60873) +++ Misc/NEWS (working copy) @@ -1149,6 +1149,9 @@ Extension Modules ----------------- +- #2112: mmap.error is now a subclass of EnvironmentError and not a + direct EnvironmentError + - Bug #2111: mmap segfaults when trying to write a block opened with PROT_READ - #2063: correct order of utime and stime in os.times() result on Windows. Index: Lib/test/test_mmap.py =================================================================== --- Lib/test/test_mmap.py (revision 60873) +++ Lib/test/test_mmap.py (working copy) @@ -436,6 +436,11 @@ self.assertRaises(TypeError, m.write, "foo") + def test_error(self): + self.assert_(issubclass(mmap.error, EnvironmentError)) + self.assert_("mmap.error" in str(mmap.error)) + + def test_main(): run_unittest(MmapTests) Index: Modules/mmapmodule.c =================================================================== --- Modules/mmapmodule.c (revision 60873) +++ Modules/mmapmodule.c (working copy) @@ -1402,7 +1402,10 @@ dict = PyModule_GetDict(module); if (!dict) return; - mmap_module_error = PyExc_EnvironmentError; + mmap_module_error = PyErr_NewException("mmap.error", + PyExc_EnvironmentError , NULL); + if (mmap_module_error == NULL) + return; PyDict_SetItemString(dict, "error", mmap_module_error); PyDict_SetItemString(dict, "mmap", (PyObject*) &mmap_object_type); #ifdef PROT_EXEC