handle_labels():  Fix problem for document fragments containing more
	than one "root" that prevented all the <label id=...> items
	from being promoted to id attributes on the enclosing chapter/
	section/... properly.
diff --git a/Doc/tools/sgmlconv/docfixer.py b/Doc/tools/sgmlconv/docfixer.py
index 2aa7284..985195f 100755
--- a/Doc/tools/sgmlconv/docfixer.py
+++ b/Doc/tools/sgmlconv/docfixer.py
@@ -165,18 +165,20 @@
 
 
 def handle_labels(doc):
-    labels = doc.getElementsByTagName("label")
-    for label in labels:
-        id = label.getAttribute("id")
-        if not id:
-            continue
-        parent = label.parentNode
-        if parent.tagName == "title":
-            parent.parentNode.setAttribute("id", id)
-        else:
-            parent.setAttribute("id", id)
-        # now, remove <label id="..."/> from parent:
-        parent.removeChild(label)
+    for node in doc.childNodes:
+        if node.nodeType == xml.dom.core.ELEMENT:
+            labels = node.getElementsByTagName("label")
+            for label in labels:
+                id = label.getAttribute("id")
+                if not id:
+                    continue
+                parent = label.parentNode
+                if parent.tagName == "title":
+                    parent.parentNode.setAttribute("id", id)
+                else:
+                    parent.setAttribute("id", id)
+                # now, remove <label id="..."/> from parent:
+                parent.removeChild(label)
 
 
 def fixup_trailing_whitespace(doc, wsmap):