diff -r 18b3869179f9 -r 1533e642262d mercurial/templater.py --- a/mercurial/templater.py Wed Oct 08 14:16:53 2014 -0700 +++ b/mercurial/templater.py Fri Oct 10 12:15:46 2014 -0500 @@ -330,7 +330,8 @@ # Iterating over items gives a formatted string, so we iterate # directly over the raw values. - if item in [i.values()[0] for i in items()]: + if ((callable(items) and item in [i.values()[0] for i in items()]) or + (isinstance(items, str) and item in items)): yield _evalifliteral(args[2], context, mapping) elif len(args) == 4: yield _evalifliteral(args[3], context, mapping)