diff --git a/mercurial/dirstatemap.py b/mercurial/dirstatemap.py
index 40cf4b278f8f4a0ab434fa101ef03fd7108f3fac_bWVyY3VyaWFsL2RpcnN0YXRlbWFwLnB5..3429f48d486d520f9d783ff1e17ef24f9bcc6de5_bWVyY3VyaWFsL2RpcnN0YXRlbWFwLnB5 100644
--- a/mercurial/dirstatemap.py
+++ b/mercurial/dirstatemap.py
@@ -289,11 +289,8 @@
                 # In addition, this seems to be a case where the file is marked
                 # as merged without actually being the result of a merge
                 # action. So thing are not ideal here.
-                self.addfile(filename, merged=True)
-                return
-            else:
-                self.addfile(filename, from_p2=True)
-                return
+                merged = True
+                clean_p2 = False
         elif not p1_tracked and p2_tracked and wc_tracked:
             clean_p2 = True
         elif possibly_dirty: