diff --git a/libmat2/office.py b/libmat2/office.py
index 1ececdf733bbcf31c924f579cd79e75f2bc163c2..c6c468802a066766a85275bf27480a08742a20c4 100644
--- a/libmat2/office.py
+++ b/libmat2/office.py
@@ -22,17 +22,11 @@ assert Pattern
 logging.basicConfig(level=logging.ERROR)
 
 def _parse_xml(full_path: str):
-    """ This function parse XML with namespace support. """
-    def parse_map(f):  # etree support for ns is a bit rough
-        namespace_map = dict()
-        for _, (key, value) in ET.iterparse(f, ("start-ns", )):
-            namespace_map[key] = value
-        return namespace_map
+    """ This function parse XML, with namespace support. """
 
-    namespace_map = parse_map(full_path)
-
-    # Register the namespaces
-    for key, value in namespace_map.items():
+    namespace_map = dict()
+    for _, (key, value) in ET.iterparse(full_path, ("start-ns", )):
+        namespace_map[key] = value
         ET.register_namespace(key, value)
 
     return ET.parse(full_path), namespace_map