diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index db924c637a7818f90418a467d2c581d1998e3ed4..396a29b7bf0d8d282e37416b1224ec6d592170da 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -103,6 +103,7 @@ test:
       - echo $CI_REGISTRY_IMAGE
 
       - docker login -u gitlab+deploy-token-ci-pull -p $TOKEN_CI_PULL $CI_REGISTRY_INDISCALE
+      - time docker load < /image-cache/caosdb-${F_BRANCH}.tar || true
       - if [[ "$CAOSDB_TAG" == "" ]]; then
           if echo "$F_BRANCH" | grep -c "^f-" ; then
             CAOSDB_TAG=${DEPLOY_REF}_F_${F_BRANCH}-latest;
@@ -132,6 +133,7 @@ test:
       - rc=`cat .docker/result`
       - exit $rc
   dependencies: [cert]
+  timeout: 3h
   artifacts:
     paths:
       - caosdb_log.txt
diff --git a/tests/test_version.py b/tests/test_version.py
index 8d45090db0810a1766d92e74d0c2864a13d99e55..7a9bf8b4e71647418c110b05dad7e7a8a9190519 100644
--- a/tests/test_version.py
+++ b/tests/test_version.py
@@ -747,3 +747,35 @@ def test_overridden_datatype():
     rt_old = c.Container().retrieve(query=str(rt.id) + "@HEAD~1",
                                     flags={"cache": "false"}, sync=False)
     assert rt.get_property("TestProperty").datatype == c.LIST(c.TEXT)
+
+
+def test_delete_referenced_entity():
+    ref_rt = c.RecordType("TestReferencedRT").insert()
+    rt = c.RecordType("TestRT").insert()
+    ref = c.Record("TestRef1").add_parent(ref_rt).insert()
+
+    rec = c.Record("TestRec").add_parent(rt).add_property(ref_rt, ref).insert()
+
+    rec.description = "v2"
+    rec.remove_property(ref_rt)
+    rec.update()
+
+    rec_v1 = c.Container().retrieve(query=str(rec.id) + "@HEAD~1",
+                                    flags={"cache": "false"}, sync=False)[0]
+    assert rec_v1.get_property(ref_rt).value == ref.id
+
+    rec_v2 = c.Container().retrieve(query=str(rec.id) + "@HEAD",
+                                    flags={"cache": "false"}, sync=False)[0]
+    assert rec_v2.get_property(ref_rt) is None
+
+    ref.delete()
+
+    rec_v1 = c.Container().retrieve(query=str(rec.id) + "@HEAD~1",
+                                    flags={"cache": "false"}, sync=False)[0]
+    assert rec_v1.get_property(ref_rt).value is None
+    assert rec_v1.get_property(ref_rt).get_warnings()[
+        0].description == "The referenced entity has been deleted in the mean time and is not longer available."
+
+    rec_v2 = c.Container().retrieve(query=str(rec.id) + "@HEAD",
+                                    flags={"cache": "false"}, sync=False)[0]
+    assert rec_v2.get_property(ref_rt) is None