diff --git a/integrationtests/test_issues.py b/integrationtests/test_issues.py
index 3bdac745f392cf747d4c4a46378047b76b04e2b4..441edac5481585e483c94d61d864a1baaa139aa2 100644
--- a/integrationtests/test_issues.py
+++ b/integrationtests/test_issues.py
@@ -20,6 +20,7 @@ from pytest import fixture, mark
 
 import caosdb as db
 from caosdb.cached import cache_clear
+from caosadvancedtools.models.parser import parse_model_from_string
 
 from caoscrawler.crawl import Crawler
 from caoscrawler.identifiable_adapters import CaosDBIdentifiableAdapter
@@ -208,3 +209,60 @@ def test_issue_83(clear_database):
     assert len(retrieved_referencing3.get_property(referenced_type.name).value) == 2
     assert retrieved_target1.id in retrieved_referencing3.get_property(referenced_type.name).value
     assert retrieved_target2.id in retrieved_referencing3.get_property(referenced_type.name).value
+
+
+def test_indiscale_113(clear_database):
+    """Somewhat mysterious failures to resolve references in
+    split_into_inserts_and_updates, see
+    https://gitlab.indiscale.com/caosdb/src/caosdb-crawler/-/issues/113
+
+    """
+
+    # Create and insert minimal datamodel
+    datamodel_str = """
+Event:
+  recommended_properties:
+    Basis:
+    Campaign:
+Basis:
+Campaign:
+  recommended_properties:
+    Basis:
+"""
+    model = parse_model_from_string(datamodel_str)
+    model.sync_data_model(noquestion=True)
+
+    # Register identifiables, everything is identified by name
+    ident = CaosDBIdentifiableAdapter()
+    ident.register_identifiable("Event", db.RecordType().add_parent(
+        name="Event").add_property(name="name"))
+    ident.register_identifiable("Basis", db.RecordType().add_parent(
+        name="Basis").add_property(name="name"))
+    ident.register_identifiable("Campaign", db.RecordType().add_parent(
+        name="Campaign").add_property(name="name"))
+
+    crawler = Crawler(identifiableAdapter=ident)
+
+    # Add records: event references basis and campaign, campaign references
+    # basis.
+    basis = db.Record(name="Poseidon").add_parent(name="Basis")
+    campaign = db.Record(name="POS386").add_parent(
+        name="Campaign").add_property(name="Basis", value=basis)
+    event = db.Record(name="GeoB13952").add_parent(name="Event")
+    event.add_property(name="Basis", value=basis)
+    event.add_property(name="Campaign", value=campaign)
+
+    # basis and campaign already exist in the db
+    db.Container().extend([basis, campaign]).insert()
+    # redefine to trigger resolving
+    basis = db.Record(name="Poseidon").add_parent(name="Basis")
+    campaign = db.Record(name="POS386").add_parent(
+        name="Campaign").add_property(name="Basis", value=basis)
+    recs = [event, basis, campaign]
+
+    ins, ups = crawler.synchronize(crawled_data=recs, unique_names=False)
+    # There is only one event to be inserted
+    assert len(ins) == 1
+    # Nothing to do for the existing ents
+    assert len(ups) == 0
+    assert ins[0].name == event.name
diff --git a/setup.cfg b/setup.cfg
index 32edcde630172cb991ea28898ae0c5e9f5770f90..fedee42ab158adfcf19fd8103fcf67f2c52c7099 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -21,7 +21,7 @@ python_requires = >=3.7
 install_requires =
 	importlib-resources
 	caosadvancedtools >= 0.7.0
-    linkahead >= 0.13.1
+    linkahead > 0.13.2
     yaml-header-tools >= 0.2.1
     pyyaml
     odfpy #make optional