convert():  Add support for ESIS '&' lines, and make sure we don't
            silently ignore unrecognized lines.
diff --git a/Doc/tools/sgmlconv/esis2sgml.py b/Doc/tools/sgmlconv/esis2sgml.py
index 38866ce..adb8873 100755
--- a/Doc/tools/sgmlconv/esis2sgml.py
+++ b/Doc/tools/sgmlconv/esis2sgml.py
@@ -146,6 +146,11 @@
             attrs[name] = esistools.decode(value)
         elif type == "e":
             knownempty = 1
+        elif type == "&":
+            ofp.write("&%s;" % data)
+            knownempty = 0
+        else:
+            raise RuntimeError, "unrecognized ESIS event type: '%s'" % type
 
     if LIST_EMPTIES:
         dump_empty_element_names(knownempties)