diff --git a/nomad/metainfo/metainfo.py b/nomad/metainfo/metainfo.py
index bcc3d950678c455669c99a17fb419ee59c66658e..71acfe59aab4eed9030d85a82801aa5a1b0ac43f 100644
--- a/nomad/metainfo/metainfo.py
+++ b/nomad/metainfo/metainfo.py
@@ -2603,7 +2603,7 @@ class MSection(metaclass=MObjectMeta):  # TODO find a way to make this a subclas
 
                     try:
                         sub_section: str = path_stack.pop()
-                        index: Any = int(sub_section) if sub_section.isnumeric() else sub_section
+                        index: Any = int(sub_section) if sub_section.lstrip('-').isnumeric() else sub_section
                     except ValueError:
                         raise MetainfoReferenceError(
                             f'Could not resolve {path}, {prop_name} repeats but there is no '