diff --git a/mercurial/bundlerepo.py b/mercurial/bundlerepo.py
index 57dc78861196740995db134e9a13c76aac242fc8_bWVyY3VyaWFsL2J1bmRsZXJlcG8ucHk=..88d5abec8f61a2f6e6a1adab24b2959dbca0970f_bWVyY3VyaWFsL2J1bmRsZXJlcG8ucHk= 100644
--- a/mercurial/bundlerepo.py
+++ b/mercurial/bundlerepo.py
@@ -63,8 +63,7 @@
             size = len(delta)
             start = cgunpacker.tell() - size
 
-            link = linkmapper(cs)
             if self.index.has_node(node):
                 # this can happen if two branches make the same change
                 self.bundlerevs.add(self.index.rev(node))
                 continue
@@ -67,7 +66,11 @@
             if self.index.has_node(node):
                 # this can happen if two branches make the same change
                 self.bundlerevs.add(self.index.rev(node))
                 continue
+            if cs == node:
+                linkrev = nullrev
+            else:
+                linkrev = linkmapper(cs)
 
             for p in (p1, p2):
                 if not self.index.has_node(p):
@@ -87,7 +90,7 @@
                 size,
                 -1,
                 baserev,
-                link,
+                linkrev,
                 self.rev(p1),
                 self.rev(p2),
                 node,