diff -r a9f826c3eaf9 -r 33e5431684c0 mercurial/context.py --- a/mercurial/context.py Wed Dec 31 13:48:55 2014 -0800 +++ b/mercurial/context.py Wed Dec 31 17:55:43 2014 +0900 @@ -1505,7 +1505,12 @@ listunknown) elif match.always(): # cache for performance - self._status = s + if s.unknown or s.ignored or s.clean: + # "_status" is cached with list*=False in the normal route + self._status = scmutil.status(s.modified, s.added, s.removed, + s.deleted, [], [], []) + else: + self._status = s return s def _matchstatus(self, other, match):