diff --git a/src/caoscrawler/sync_graph.py b/src/caoscrawler/sync_graph.py
index 366facd4476fa044ed98dfa545e7edc5428ee30e..93ca4902343427250ea126e3c3462f69222db321 100644
--- a/src/caoscrawler/sync_graph.py
+++ b/src/caoscrawler/sync_graph.py
@@ -560,8 +560,8 @@ class SyncGraph:
 
         # update reference mappings
         for setA, setB in (
-            (self.forward_references, self.backward_references),
-            (self.backward_references, self.forward_references),
+            (self.forward_references, self.backward_references),  # ref: source -> other
+            (self.backward_references, self.forward_references),  # ref: other -> source
             (self.forward_references_id_props, self.backward_references_id_props),
             (self.backward_references_id_props, self.forward_references_id_props),
             (self.forward_references_backref, self.backward_references_backref),
@@ -608,7 +608,7 @@ class SyncGraph:
 
         if id(source) in self._missing and id(target) not in self._missing:
             self._mark_missing(target)
-        if id(source) in self._existing and id(target) not in self._existing:
+        elif id(source) in self._existing and id(target) not in self._existing:
             self._mark_existing(target)
 
         # due to the merge it might now be possible to create an identifiable