#5355 followup: add unit test for new dictionaries, and provide submodules from xml.parsers.expat as advertised.
diff --git a/Lib/test/test_pyexpat.py b/Lib/test/test_pyexpat.py
index a116544..49ac23d 100644
--- a/Lib/test/test_pyexpat.py
+++ b/Lib/test/test_pyexpat.py
@@ -2,10 +2,10 @@
 # handler, are obscure and unhelpful.
 
 from io import BytesIO
-import sys
 import unittest
 
 from xml.parsers import expat
+from xml.parsers.expat import errors
 
 from test.support import sortdict, run_unittest
 
@@ -575,7 +575,7 @@
         parser.Parse(xml2, 1)
         self.assertEquals(self.n, 4)
 
-class MalformedInputText(unittest.TestCase):
+class MalformedInputTest(unittest.TestCase):
     def test1(self):
         xml = "\0\r\n"
         parser = expat.ParserCreate()
@@ -594,6 +594,23 @@
         except expat.ExpatError as e:
             self.assertEquals(str(e), 'XML declaration not well-formed: line 1, column 14')
 
+class ErrorMessageTest(unittest.TestCase):
+    def test_codes(self):
+        # verify mapping of errors.codes and errors.messages
+        self.assertEqual(errors.XML_ERROR_SYNTAX,
+                         errors.messages[errors.codes[errors.XML_ERROR_SYNTAX]])
+
+    def test_expaterror(self):
+        xml = '<'
+        parser = expat.ParserCreate()
+        try:
+            parser.Parse(xml, True)
+            self.fail()
+        except expat.ExpatError as e:
+            self.assertEquals(e.code,
+                              errors.codes[errors.XML_ERROR_UNCLOSED_TOKEN])
+
+
 def test_main():
     run_unittest(SetAttributeTest,
                  ParseTest,
@@ -604,7 +621,8 @@
                  PositionTest,
                  sf1296433Test,
                  ChardataBufferTest,
-                 MalformedInputText)
+                 MalformedInputTest,
+                 ErrorMessageTest)
 
 if __name__ == "__main__":
     test_main()
diff --git a/Lib/xml/parsers/expat.py b/Lib/xml/parsers/expat.py
index 11359a0..a805b82 100644
--- a/Lib/xml/parsers/expat.py
+++ b/Lib/xml/parsers/expat.py
@@ -1,4 +1,10 @@
 """Interface to the Expat non-validating XML parser."""
 __version__ = '$Revision$'
 
+import sys
+
 from pyexpat import *
+
+# provide pyexpat submodules as xml.parsers.expat submodules
+sys.modules['xml.parsers.expat.model'] = model
+sys.modules['xml.parsers.expat.errors'] = errors