diff -r fe532dccf8f6 Lib/test/test_minidom.py --- a/Lib/test/test_minidom.py Mon Apr 14 10:30:43 2014 -0400 +++ b/Lib/test/test_minidom.py Mon Apr 14 11:37:26 2014 -0400 @@ -1518,6 +1518,10 @@ doc2 = parseString(doc.toxml()) self.confirm(doc2.namespaceURI == xml.dom.EMPTY_NAMESPACE) + def testExceptionOnSpacesInXMLNSValue(self): + with self.assertRaisesRegexp(ValueError, 'Invalid syntax'): + parseString('') + def testDocRemoveChild(self): doc = parse(tstfile) title_tag = doc.documentElement.getElementsByTagName("TITLE")[0] diff -r fe532dccf8f6 Lib/xml/dom/expatbuilder.py --- a/Lib/xml/dom/expatbuilder.py Mon Apr 14 10:30:43 2014 -0400 +++ b/Lib/xml/dom/expatbuilder.py Mon Apr 14 11:37:26 2014 -0400 @@ -121,10 +121,12 @@ qname = "%s:%s" % (prefix, localname) qname = intern(qname, qname) localname = intern(localname, localname) - else: + elif len(parts) == 2: uri, localname = parts prefix = EMPTY_PREFIX qname = localname = intern(localname, localname) + else: + raise ValueError("Invalid syntax in name: '" + name + "'") return intern(uri, uri), localname, prefix, qname