diff -r 2e22f30e8437 -r 5931489b65e0 mercurial/obsolete.py --- a/mercurial/obsolete.py Sun Nov 17 13:42:24 2013 -0500 +++ b/mercurial/obsolete.py Sat Nov 16 20:31:58 2013 -0500 @@ -268,7 +268,11 @@ if not _enabled: raise util.Abort('obsolete feature is not enabled on this repo') known = set(self._all) - new = [m for m in markers if m not in known] + new = [] + for m in markers: + if m not in known: + known.add(m) + new.append(m) if new: f = self.sopener('obsstore', 'ab') try: