Patch #103854: raises an exception if a non-Attr node is passed to
 NamedNodeMap.setNamedItem().  Martin, should I sync the PyXML tree, too,
 or do you want to do it?  (I don't know if you're wrapping the 0.6.4
 release right now.)
diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py
index ef1a2bf..b4ae267 100644
--- a/Lib/xml/dom/minidom.py
+++ b/Lib/xml/dom/minidom.py
@@ -378,6 +378,9 @@
         self.setNamedItem(node)
 
     def setNamedItem(self, node):
+        if not isinstance(node, Attr):
+            raise HierarchyRequestErr, \
+                  "%s cannot be child of %s" % (repr(node), repr(self))
         old = self._attrs.get(node.name)
         if old:
             old.unlink()