diff --git a/hgext/mq.py b/hgext/mq.py
index b8696a6676bed4bea1b0da76cbee21a22ba886d6_aGdleHQvbXEucHk=..9d4b5c3cb85304234c31b98b821c7ebf54418360_aGdleHQvbXEucHk= 100644
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -1814,9 +1814,6 @@
 
                 self.added.append(patchname)
                 patchname = None
-            if rev:
-                # if we added anything with rev, we must move the secret root
-                phases.retractboundary(repo, phases.secret, [n])
             self.parseseries()
             self.applieddirty = True
             self.seriesdirty = True
@@ -1991,5 +1988,5 @@
 
     Returns 0 if import succeeded.
     """
-    lock = repo.lock() # cause this may move phase
+    q = repo.mq
     try:
@@ -1995,13 +1992,5 @@
     try:
-        q = repo.mq
-        try:
-            q.qimport(repo, filename, patchname=opts.get('name'),
-                  existing=opts.get('existing'), force=opts.get('force'),
-                  rev=opts.get('rev'), git=opts.get('git'))
-        finally:
-            q.savedirty()
-
-
-        if opts.get('push') and not opts.get('rev'):
-            return q.push(repo, None)
+        q.qimport(repo, filename, patchname=opts.get('name'),
+              existing=opts.get('existing'), force=opts.get('force'),
+              rev=opts.get('rev'), git=opts.get('git'))
     finally:
@@ -2007,5 +1996,8 @@
     finally:
-        lock.release()
+        q.savedirty()
+
+    if opts.get('push') and not opts.get('rev'):
+        return q.push(repo, None)
     return 0
 
 def qinit(ui, repo, create):
diff --git a/tests/test-mq-qimport.t b/tests/test-mq-qimport.t
index b8696a6676bed4bea1b0da76cbee21a22ba886d6_dGVzdHMvdGVzdC1tcS1xaW1wb3J0LnQ=..9d4b5c3cb85304234c31b98b821c7ebf54418360_dGVzdHMvdGVzdC1tcS1xaW1wb3J0LnQ= 100644
--- a/tests/test-mq-qimport.t
+++ b/tests/test-mq-qimport.t
@@ -165,8 +165,6 @@
   patch b.diff finalized without changeset message
   patch another.diff finalized without changeset message
   $ hg qimport -rtip -P
-  $ hg phase -r qbase
-  2: secret
   $ hg qpop -a
   popping 2.diff
   patch queue now empty