When creating an attribute node using createAttribute() or
createAttributeNS(), use the parallel setAttributeNode() or
setAttributeNodeNS() to add the node to the document -- do not assume
that setAttributeNode() will operate properly for both.
diff --git a/Lib/xml/dom/pulldom.py b/Lib/xml/dom/pulldom.py
index d7280ee..d71f6df 100644
--- a/Lib/xml/dom/pulldom.py
+++ b/Lib/xml/dom/pulldom.py
@@ -83,10 +83,11 @@
                 else:
                     qname = a_localname
                 attr = self.document.createAttributeNS(a_uri, qname)
+                node.setAttributeNodeNS(attr)
             else:
                 attr = self.document.createAttribute(a_localname)
+                node.setAttributeNode(attr)
             attr.value = value
-            node.setAttributeNode(attr)
 
         self.lastEvent[1] = [(START_ELEMENT, node), None]
         self.lastEvent = self.lastEvent[1]