Escape special characters on output.
diff --git a/Doc/tools/sgmlconv/esis2sgml.py b/Doc/tools/sgmlconv/esis2sgml.py
index 172e712..d6f3eb9 100755
--- a/Doc/tools/sgmlconv/esis2sgml.py
+++ b/Doc/tools/sgmlconv/esis2sgml.py
@@ -12,13 +12,15 @@
 import re
 import string
 
+from xml.utils import escape
+
 
 def format_attrs(attrs):
     attrs = attrs.items()
     attrs.sort()
     s = ''
     for name, value in attrs:
-        s = '%s %s="%s"' % (s, name, value)
+        s = '%s %s="%s"' % (s, name, escape(value))
     return s
 
 
@@ -39,7 +41,7 @@
             data = data[:-1]
         if type == "-":
             data = esistools.decode(data)
-            ofp.write(data)
+            ofp.write(escape(data))
             if "\n" in data:
                 lastopened = None
             knownempty = 0