diff -r a36fd0993522 -r 95dc4b009f60 mercurial/commands.py --- a/mercurial/commands.py Tue Jul 14 16:23:57 2015 +0100 +++ b/mercurial/commands.py Tue Jul 14 18:50:20 2015 -0500 @@ -6483,6 +6483,11 @@ if not ret and movemarkfrom: if bookmarks.update(repo, [movemarkfrom], repo['.'].node()): ui.status(_("updating bookmark %s\n") % repo._activebookmark) + else: + # this can happen with a non-linear update + ui.status(_("(leaving bookmark %s)\n") % + repo._activebookmark) + bookmarks.deactivate(repo) elif brev in repo._bookmarks: bookmarks.activate(repo, brev) ui.status(_("(activating bookmark %s)\n") % brev)