diff --git a/Doc/tools/sgmlconv/esistools.py b/Doc/tools/sgmlconv/esistools.py
index 3e0ffc3..18117b5 100644
--- a/Doc/tools/sgmlconv/esistools.py
+++ b/Doc/tools/sgmlconv/esistools.py
@@ -44,7 +44,7 @@
         self.__empties = {}
         self.__is_empty = 0
         apply(xml.dom.esis_builder.EsisBuilder.__init__, (self,) + args, kw)
-        self.fragment = self.document.createDocumentFragment()
+        self.buildFragment()
 
     def feed(self, data):
         for line in string.split(data, '\n'):
@@ -75,20 +75,6 @@
                 self.__is_empty = 1
             else:
                 sys.stderr.write('Unknown event: %s\n' % line)
-
-    def push(self, node):
-        "Add node to current node and move to new node."
-
-        nodetype = node.get_nodeType()
-        if self.current_element:
-            self.current_element.insertBefore(node, None)
-        elif nodetype == xml.dom.core.TEXT_NODE:
-            if string.strip(node.get_nodeValue()):
-                self.fragment.appendChild(node)
-        else:
-            self.fragment.appendChild(node)
-        if nodetype == xml.dom.core.ELEMENT_NODE:
-            self.current_element = node
         
     def get_empties(self):
         return self.__empties.keys()
