diff -r 6439d78e14fb -r 23f785b38af3 mercurial/commands.py --- a/mercurial/commands.py Tue Apr 30 21:12:49 2013 -0500 +++ b/mercurial/commands.py Wed May 01 15:24:21 2013 -0500 @@ -880,7 +880,7 @@ tgt = scmutil.revsingle(repo, rev).node() checkconflict(repo, mark, force, tgt) marks[mark] = tgt - if not inactive and cur == marks[mark]: + if not inactive and cur == marks[mark] and not rev: bookmarks.setcurrent(repo, mark) elif cur != tgt and mark == repo._bookmarkcurrent: bookmarks.setcurrent(repo, None)