fixup_descriptors():  Change the way we look for descriptor nodes;
	this takes 5 minutes off the conversion of the whole tree by
	reducing the number of tree-traversals from 14 to 1.
diff --git a/Doc/tools/sgmlconv/docfixer.py b/Doc/tools/sgmlconv/docfixer.py
index 0b73126..68fd4a3 100755
--- a/Doc/tools/sgmlconv/docfixer.py
+++ b/Doc/tools/sgmlconv/docfixer.py
@@ -131,10 +131,21 @@
     )
 
 def fixup_descriptors(doc):
-    for tagName in DESCRIPTOR_ELEMENTS:
-        nodes = find_all_elements(doc, tagName)
-        for node in nodes:
-            rewrite_descriptor(doc, node)
+    sections = find_all_elements(doc, "section")
+    for section in sections:
+        find_and_fix_descriptors(doc, section)
+
+
+def find_and_fix_descriptors(doc, container):
+    children = container.childNodes
+    for child in children:
+        if child.nodeType == xml.dom.core.ELEMENT:
+            tagName = child.tagName
+            if tagName in DESCRIPTOR_ELEMENTS:
+                rewrite_descriptor(doc, child)
+            elif tagName == "subsection":
+                find_and_fix_descriptors(doc, child)
+
 
 def rewrite_descriptor(doc, descriptor):
     #