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