approximately double dump performance by moving import of cgi.escape back to
top level.
diff --git a/Lib/xmlrpclib.py b/Lib/xmlrpclib.py
index ea4f932..37c9429 100644
--- a/Lib/xmlrpclib.py
+++ b/Lib/xmlrpclib.py
@@ -136,6 +136,7 @@
 
 import re, string, time, operator
 from types import *
+from cgi import escape as _escape
 
 try:
     unicode
@@ -472,15 +473,13 @@
     dispatch[FloatType] = dump_double
 
     def dump_string(self, value):
-        from cgi import escape
-        self.write("<value><string>%s</string></value>\n" % escape(value))
+        self.write("<value><string>%s</string></value>\n" % _escape(value))
     dispatch[StringType] = dump_string
 
     if unicode:
         def dump_unicode(self, value):
             value = value.encode(self.encoding)
-            from cgi import escape
-            self.write("<value><string>%s</string></value>\n" % escape(value))
+            self.write("<value><string>%s</string></value>\n" % _escape(value))
         dispatch[UnicodeType] = dump_unicode
 
     def container(self, value):
@@ -513,8 +512,7 @@
             write("<member>\n")
             if type(k) is not StringType:
                 raise TypeError, "dictionary key must be string"
-            from cgi import escape
-            write("<name>%s</name>\n" % escape(k))
+            write("<name>%s</name>\n" % _escape(k))
             self.__dump(v)
             write("</member>\n")
         write("</struct></value>\n")