diff -r 155d2e17884e -r cff56a0ed18e mercurial/localrepo.py --- a/mercurial/localrepo.py Mon Apr 11 10:06:57 2011 +0200 +++ b/mercurial/localrepo.py Mon Apr 11 21:44:22 2011 +0300 @@ -1225,14 +1225,15 @@ modified, added, clean = [], [], [] for fn in mf2: if fn in mf1: - if (mf1.flags(fn) != mf2.flags(fn) or - (mf1[fn] != mf2[fn] and - (mf2[fn] or ctx1[fn].cmp(ctx2[fn])))): + if (fn not in deleted and + (mf1.flags(fn) != mf2.flags(fn) or + (mf1[fn] != mf2[fn] and + (mf2[fn] or ctx1[fn].cmp(ctx2[fn]))))): modified.append(fn) elif listclean: clean.append(fn) del mf1[fn] - else: + elif fn not in deleted: added.append(fn) removed = mf1.keys()