diff -r 061796d9855e -r 507dd7bc8cb5 svghmi/hmi_tree.py --- a/svghmi/hmi_tree.py Tue Apr 06 11:47:07 2021 +0200 +++ b/svghmi/hmi_tree.py Tue Apr 06 14:04:08 2021 +0200 @@ -125,7 +125,9 @@ # hash is computed on demand node = cls(path, name, nodetype, hmiclass=hmiclass) for child in enode.iterchildren(): - node.children.append(cls.from_etree(child)) + newnode = cls.from_etree(child) + newnode.parent = weakref.ref(node) + node.children.append(newnode) return node def traverse(self):