diff --git a/src/caosadvancedtools/table_json_conversion/table_generator.py b/src/caosadvancedtools/table_json_conversion/table_generator.py
index 1b52204e77b4b63d06d0fbc4d813c0a10fa2994b..913ddd7dd75fcf025fc7ab4482615db5c35bcb3a 100644
--- a/src/caosadvancedtools/table_json_conversion/table_generator.py
+++ b/src/caosadvancedtools/table_json_conversion/table_generator.py
@@ -113,30 +113,20 @@ class TableTemplateGenerator(ABC):
                                                         sheets, [RTname], foreign_keys)
         return sheets
 
-    def _get_foreign_keys(self, foreign_keys: dict, path: list) -> list:
+    def _get_foreign_keys(self, keys: dict, path: list) -> list:
         """ returns the foreign keys that are needed at the location to which path points """
-        cpath = list(path)
-        keys = foreign_keys
-        selected_keys = None
-        while cpath:
-            if keys is None:
-                raise ValueError(f"A foreign key definition is missing for path:"
-                                 f"\n{path}\n{foreign_keys}")
-            if cpath[0] not in keys:
-                raise ValueError(f"A foreign key definition is missing for path: \n{path}\n{keys}")
-            keys = keys[cpath[0]]
-            if isinstance(keys, list):
-                selected_keys, keys = keys, None
-            else:
-                selected_keys, keys = None, keys
-            cpath = cpath[1:]
+        msg = (f"A foreign key definition is missing for path:\n{path}\n{keys}")
+        while path:
+            if keys is None or path[0] not in keys:
+                raise ValueError(msg)
+            keys = keys[path[0]]
+            path = path[1:]
         if isinstance(keys, dict) and "__this__" in keys:
-            selected_keys = keys["__this__"]
-
-        if selected_keys is None:
-            raise ValueError(f"A foreign key definition is missing for path:"
-                             f"\n{path}\n{foreign_keys}")
-        return selected_keys
+            return keys["__this__"]
+        elif isinstance(keys, list):
+            return keys
+        else:
+            raise ValueError(msg)
 
     def _treat_schema_element(self, schema: dict, sheets: dict = None, path: list = None,
                               foreign_keys: dict = None, level_in_sheet_name: int = 1,