diff -r 747a2f43d5d9 -r aba3c161bcc6 mercurial/context.py --- a/mercurial/context.py Mon Oct 08 17:12:09 2012 +0200 +++ b/mercurial/context.py Mon Oct 08 17:15:08 2012 +0200 @@ -95,7 +95,10 @@ # lookup failed # check if it might have come from damaged dirstate - if changeid in repo.dirstate.parents(): + # + # XXX we could avoid the unfiltered if we had a recognizable exception + # for filtered changeset access + if changeid in repo.unfiltered().dirstate.parents(): raise error.Abort(_("working directory has unknown parent '%s'!") % short(changeid)) try: