Added support to handle \versionadded in a reasonable way.
diff --git a/Doc/tools/sgmlconv/docfixer.py b/Doc/tools/sgmlconv/docfixer.py
index 68fd4a3..589ecea 100755
--- a/Doc/tools/sgmlconv/docfixer.py
+++ b/Doc/tools/sgmlconv/docfixer.py
@@ -155,8 +155,10 @@
     #   2. Create a <signature> from the name attribute and <args>.
     #   3. Create additional <signature>s from <*line{,ni}> elements,
     #      if found.
-    #   4. Move remaining child nodes to a <description> element.
-    #   5. Put it back together.
+    #   4. If a <versionadded> is found, move it to an attribute on the
+    #      descriptor.
+    #   5. Move remaining child nodes to a <description> element.
+    #   6. Put it back together.
     #
     descname = descriptor.tagName
     index = 1
@@ -200,16 +202,21 @@
             signature.appendChild(doc.createTextNode("\n    "))
             signature.appendChild(args)
     signature.appendChild(doc.createTextNode("\n  "))
-    # 3.
+    # 3, 4.
     pos = skip_leading_nodes(children, pos + 1)
     while pos < len(children) \
           and children[pos].nodeType == xml.dom.core.ELEMENT \
-          and children[pos].tagName == linename:
-        # this is really a supplemental signature, create <signature>
-        sig = methodline_to_signature(doc, children[pos])
-        newchildren.append(sig)
+          and children[pos].tagName in (linename, "versionadded"):
+        if children[pos].tagName == linename:
+            # this is really a supplemental signature, create <signature>
+            sig = methodline_to_signature(doc, children[pos])
+            newchildren.append(sig)
+        else:
+            # <versionadded added=...>
+            descriptor.setAttribute(
+                "added", children[pos].getAttribute("version"))
         pos = skip_leading_nodes(children, pos + 1)
-    # 4.
+    # 5.
     description = doc.createElement("description")
     description.appendChild(doc.createTextNode("\n"))
     newchildren.append(description)
@@ -217,7 +224,7 @@
     last = description.childNodes[-1]
     if last.nodeType == xml.dom.core.TEXT:
         last.data = string.rstrip(last.data) + "\n  "
-    # 5.
+    # 6.
     # should have nothing but whitespace and signature lines in <descriptor>;
     # discard them
     while descriptor.childNodes:
@@ -408,6 +415,9 @@
                 typenode = doc.createElement("type")
                 typenode.appendChild(doc.createTextNode(type))
                 modinfo.appendChild(typenode)
+        versionadded = extract_first_element(section, "versionadded")
+        if versionadded:
+            modinfo.setAttribute("added", versionadded.getAttribute("version"))
         title = get_first_element(section, "title")
         if title:
             children = title.childNodes