diff --git a/mercurial/templater.py b/mercurial/templater.py
index cd842821db2c185d350e0d12134c7a9db1036607_bWVyY3VyaWFsL3RlbXBsYXRlci5weQ==..8b900b937e1c11b2018350da4b41054444422765_bWVyY3VyaWFsL3RlbXBsYXRlci5weQ== 100644
--- a/mercurial/templater.py
+++ b/mercurial/templater.py
@@ -132,5 +132,5 @@
     pos, stop = 0, len(tmpl)
     p = parser.parser(elements)
     while pos < stop:
-        n = tmpl.find('{', pos)
+        n = tmpl.find('{', pos, stop)
         if n < 0:
@@ -136,5 +136,6 @@
         if n < 0:
-            parsed.append(('string', tmpl[pos:]))
+            parsed.append(('string', tmpl[pos:stop]))
+            pos = stop
             break
         bs = (n - pos) - len(tmpl[pos:n].rstrip('\\'))
         if bs % 2 == 1: