diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py
--- a/mercurial/dirstate.py
+++ b/mercurial/dirstate.py
@@ -446,6 +446,7 @@
         size=NONNORMAL,
         mtime=AMBIGUOUS_TIME,
         from_p2=False,
+        possibly_dirty=False,
     ):
         oldstate = self[f]
         if state == b'a' or oldstate == b'r':
@@ -466,6 +467,8 @@
         if from_p2:
             size = FROM_P2
             mtime = AMBIGUOUS_TIME
+        elif possibly_dirty:
+            mtime = AMBIGUOUS_TIME
         else:
             assert size != FROM_P2
             if size != NONNORMAL:
@@ -522,7 +525,7 @@
                     return
                 if entry[0] == b'm' or entry[0] == b'n' and entry[2] == FROM_P2:
                     return
-        self._addpath(f, b'n', 0)
+        self._addpath(f, b'n', 0, possibly_dirty=True)
         self._map.copymap.pop(f, None)
 
     def otherparent(self, f):