diff -r c33d9217e99d -r 2ca325ea57fa mercurial/commands.py --- a/mercurial/commands.py Wed Nov 20 22:03:15 2013 +0100 +++ b/mercurial/commands.py Wed Nov 06 19:01:14 2013 -0600 @@ -836,10 +836,12 @@ bookmarks.deletedivergent(repo, [target], mark) return + # consider successor changesets as well + foreground = obsolete.foreground(repo, [marks[mark]]) deletefrom = [b for b in divs if repo[b].rev() in anc or b == target] bookmarks.deletedivergent(repo, deletefrom, mark) - if bmctx.rev() in anc: + if bmctx.rev() in anc or target in foreground: ui.status(_("moving bookmark '%s' forward from %s\n") % (mark, short(bmctx.node()))) return