diff --git a/newwizardwidget.cpp b/newwizardwidget.cpp
index 82f907b0d651a1fa73083c2913f98eda15399d0c..37c68c553e8e0da908f22a6262c27ae252b26a5f 100644
--- a/newwizardwidget.cpp
+++ b/newwizardwidget.cpp
@@ -410,16 +410,6 @@ NewWizardWidget::createRingAccount(const QString &displayName,
     const QString &pin,
     const QString &archivePath)
 {
-    QtConcurrent::run(
-        [=] {
-            LRCInstance::accountModel().createNewAccount(
-                lrc::api::profile::Type::RING,
-                displayName.toStdString(),
-                archivePath.toStdString(),
-                password.toStdString(),
-                pin.toStdString()
-            );
-        });
     QMetaObject::Connection* const connection = new QMetaObject::Connection;
     *connection = connect(&LRCInstance::accountModel(), &lrc::api::NewAccountModel::accountAdded,
         [this, connection](const std::string& accountId) {
@@ -447,6 +437,16 @@ NewWizardWidget::createRingAccount(const QString &displayName,
                 delete connection;
             }
         });
+    QtConcurrent::run(
+        [=] {
+            LRCInstance::accountModel().createNewAccount(
+                lrc::api::profile::Type::RING,
+                displayName.toStdString(),
+                archivePath.toStdString(),
+                password.toStdString(),
+                pin.toStdString()
+            );
+        });
     changePage(ui->spinnerPage);
     repaint();
 }
\ No newline at end of file