diff -r 5d75eb8568d1 -r 531e69ff348f mercurial/dispatch.py --- a/mercurial/dispatch.py Thu Mar 22 16:54:46 2012 -0500 +++ b/mercurial/dispatch.py Thu Mar 22 17:08:05 2012 -0500 @@ -225,7 +225,9 @@ def replacer(m): num = int(m.group(1)) - 1 nums.append(num) - return givenargs[num] + if num < len(givenargs): + return givenargs[num] + return '' cmd = re.sub(r'\$(\d+|\$)', replacer, cmd) givenargs = [x for i, x in enumerate(givenargs) if i not in nums]