diff --git a/integrationtests/test_issues.py b/integrationtests/test_issues.py
index 76392f3a4ce20d7ed6b6ccc30c79f1ce400001f7..7b6190559eb4a7447581b278b819651d6f71c9db 100644
--- a/integrationtests/test_issues.py
+++ b/integrationtests/test_issues.py
@@ -28,6 +28,8 @@ from linkahead.cached import cache_clear
 from linkahead.utils.register_tests import clear_database, set_test_key
 from pytest import fixture, mark, raises
 
+import tempfile
+
 set_test_key("10b128cf8a1372f30aa3697466bb55e76974e0c16a599bb44ace88f19c8f61e2")
 
 
@@ -328,3 +330,80 @@ def test_indiscale_87(clear_database):
         print(db.apiutils.compare_entities(rec, retrieved))
         assert db.apiutils.empty_diff(rec, retrieved)
         print("---")
+
+
+def test_issue_14(clear_database):
+    """
+    Issue title: Some parent updates are required before inserts
+
+    https://gitlab.indiscale.com/caosdb/src/caosdb-crawler/-/issues/14
+    """
+
+    rt1 = db.RecordType(name="RT1")
+    rt2 = db.RecordType(name="RT2").insert()
+    rt1.add_property(rt2, importance=db.OBLIGATORY)
+    rt1.insert()
+
+    r = db.Record()
+    r.add_parent(rt1)
+    with tempfile.NamedTemporaryFile() as tmpf:
+        f = db.File(name="test_parent", path="parent_test/file.txt", file=tmpf.name)
+        f.insert()
+
+        # We create a clean new file object here:
+        f2 = db.File(name="test_parent", path="parent_test/file.txt", file=tmpf.name)
+
+    f2.add_parent(rt2)
+    r.add_property(name="RT2", value=f2)
+
+    # Current state in the database: File without parents
+    f_test_base = db.File(name="test_parent").retrieve()
+    assert len(f_test_base.parents) == 0
+    assert len(db.execute_query("FIND Record")) == 0
+
+    ident = CaosDBIdentifiableAdapter()
+    ident.register_identifiable("RT1", db.RecordType().add_parent(
+        name="RT1").add_property(name="RT2"))
+    crawler = Crawler(identifiableAdapter=ident)
+    crawler.synchronize(crawled_data=[f2, r])
+
+    f_test = db.File(name="test_parent").retrieve()
+    assert len(f_test.parents) == 1
+    assert f_test.parents[0].name == "RT2"
+    records = db.execute_query("FIND Record")
+    assert len(records) == 1
+    assert records[0].get_property("RT2").value == f_test.id
+
+
+
+# Another bug: set id of node?
+# def test_issue_14(clear_database):
+#     """
+#     Issue title: Some parent updates are required before inserts
+#
+#     https://gitlab.indiscale.com/caosdb/src/caosdb-crawler/-/issues/14
+#     """
+#
+#     rt1 = db.RecordType(name="RT1")
+#     rt2 = db.RecordType(name="RT2").insert()
+#     rt1.add_property(rt2, importance=db.OBLIGATORY)
+#     rt1.insert()
+#
+#     r = db.Record()
+#     r.add_parent(rt1)
+#     with tempfile.NamedTemporaryFile() as tmpf:
+#         f = db.File(name="test_parent", path="parent_test/file.txt", file=tmpf.name)
+#         f.insert()
+#
+#     f2 = db.File(name="test_parent").retrieve()
+#     f2.add_parent(rt2)
+#     r.add_property(name="RT2", value=f2)
+#     # cont = db.Container([f2, r])
+#
+#     ident = CaosDBIdentifiableAdapter()
+#     ident.register_identifiable("R1", db.RecordType().add_parent(
+#         name="R1").add_property(name="R2"))
+#     crawler = Crawler(identifiableAdapter=ident)
+#     crawler.synchronize(crawled_data=[f2, r])
+#     breakpoint()
+