diff --git a/mercurial/destutil.py b/mercurial/destutil.py
index 6c22a17faa18ab1236ffb157f7133002aaa09fd0_bWVyY3VyaWFsL2Rlc3R1dGlsLnB5..3d094fbedf740e4fa5307fe5b120716ec2fecdea_bWVyY3VyaWFsL2Rlc3R1dGlsLnB5 100644
--- a/mercurial/destutil.py
+++ b/mercurial/destutil.py
@@ -53,11 +53,6 @@
     node = None
     wc = repo[None]
     p1 = wc.p1()
-    activemark = None
-
-    # we also move the active bookmark, if any
-    node, movemark = bookmarks.calculateupdate(repo.ui, repo, None)
-    if node is not None:
-        activemark = node
+    movemark, activemark = None
 
     if node is None:
@@ -62,10 +57,7 @@
 
     if node is None:
-        try:
-            node = repo.branchtip(wc.branch())
-        except error.RepoLookupError:
-            if wc.branch() == 'default': # no default branch!
-                node = repo.lookup('tip') # update to tip
-            else:
-                raise error.Abort(_("branch %s not found") % wc.branch())
+        # we also move the active bookmark, if any
+        node, movemark = bookmarks.calculateupdate(repo.ui, repo, None)
+        if node is not None:
+            activemark = node
 
@@ -71,4 +63,12 @@
 
+        if node is None:
+            try:
+                node = repo.branchtip(wc.branch())
+            except error.RepoLookupError:
+                if wc.branch() == 'default': # no default branch!
+                    node = repo.lookup('tip') # update to tip
+                else:
+                    raise error.Abort(_("branch %s not found") % wc.branch())
     if p1.obsolete() and not p1.children():
         # allow updating to successors
         successors = obsolete.successorssets(repo, p1.node())