--- a/xmltramp.py 2011-01-07 15:27:58.000000000 +1000 +++ b/xmltramp.py 2011-11-02 14:03:07.881107507 +1000 @@ -224,7 +224,9 @@ attrs = dict(attrs) newprefixes = {} - for k in self.prefixes.keys(): newprefixes[k] = self.prefixes[k][-1] + for k in self.prefixes.keys(): + if self.prefixes[k]: + newprefixes[k] = self.prefixes[k][-1] self.stack.append(Element(name, attrs, prefixes=newprefixes.copy())) @@ -357,5 +359,6 @@ assert parse('<x a="<"></x>').__repr__(1) == '<x a="<"></x>' assert parse('<a xmlns="http://a"><b xmlns="http://b"/></a>').__repr__(1) == '<a xmlns="http://a"><b xmlns="http://b"></b></a>' + assert parse('<a><b xmlns="http://b"/><c/></a>').__repr__(1) == '<a><b xmlns="http://b"></b><c></c></a>' if __name__ == '__main__': unittest()