diff --git a/Lib/test/test_codeccallbacks.py b/Lib/test/test_codeccallbacks.py
index f7a07ee..5c7243a 100644
--- a/Lib/test/test_codeccallbacks.py
+++ b/Lib/test/test_codeccallbacks.py
@@ -37,12 +37,6 @@
     def test_xmlcharnamereplace(self):
         # This time use a named character entity for unencodable
         # characters, if one is available.
-        names = {}
-        for (key, value) in htmlentitydefs.entitydefs.items():
-            if len(value)==1:
-                names[unicode(value, "latin-1")] = unicode(key, "latin-1")
-            else:
-                names[unichr(int(value[2:-1]))] = unicode(key, "latin-1")
 
         def xmlcharnamereplace(exc):
             if not isinstance(exc, UnicodeEncodeError):
@@ -50,7 +44,7 @@
             l = []
             for c in exc.object[exc.start:exc.end]:
                 try:
-                    l.append(u"&%s;" % names[c])
+                    l.append(u"&%s;" % htmlentitydefs.codepoint2name[ord(c)])
                 except KeyError:
                     l.append(u"&#%d;" % ord(c))
             return (u"".join(l), exc.end)
