diff --git a/src/caoscrawler/identifiable_adapters.py b/src/caoscrawler/identifiable_adapters.py
index d0dfd752875be15dba9190acb5ec198ade799e02..80ab1669ef1e28537d4a2c0abe9bc9dc3b662a13 100644
--- a/src/caoscrawler/identifiable_adapters.py
+++ b/src/caoscrawler/identifiable_adapters.py
@@ -221,6 +221,8 @@ identifiabel, identifiable and identified record) for a Record.
                     for givenrt in prop.value:
                         found = False
                         if givenrt == "*":
+                            if id(record) not in referencing_entities:
+                                continue
                             for rt, rec in referencing_entities[id(record)].items():
                                 identifiable_backrefs.extend(rec)
                                 found = True
diff --git a/unittests/test_identifiable_adapters.py b/unittests/test_identifiable_adapters.py
index 268b9800ddf1ef1688386f394ec1c6c7eb3e3912..7759fa55ce37e1c30ff9092eac3260ca80348bca 100644
--- a/unittests/test_identifiable_adapters.py
+++ b/unittests/test_identifiable_adapters.py
@@ -133,6 +133,22 @@ def test_non_default_name():
     assert identifiable.name is None
 
 
+def test_wildcard_ref():
+    ident = CaosDBIdentifiableAdapter()
+    ident.register_identifiable(
+        "Person", db.RecordType()
+        .add_parent(name="Person")
+        .add_property(name="is_referenced_by", value=["*"]))
+    rec = (db.Record(name="don't touch it").add_parent("Person")
+           .add_property(name="last_name", value='Tom'))
+    identifiable = ident.get_identifiable(rec,
+                                          referencing_entities={
+                                              id(rec):
+                                              {'A': [db.Record(id=1).add_parent("A")]}}
+                                          )
+    assert identifiable.backrefs[0].id == 1
+
+
 def test_convert_value():
     # test that string representation of objects stay unchanged. No stripping or so.
     class A():