diff --git a/src/main/java/com/github/thibstars/btsd/desktop/launch/DesktopLauncher.java b/src/main/java/com/github/thibstars/btsd/desktop/launch/DesktopLauncher.java
index 3ed56cf..7f0d907 100644
--- a/src/main/java/com/github/thibstars/btsd/desktop/launch/DesktopLauncher.java
+++ b/src/main/java/com/github/thibstars/btsd/desktop/launch/DesktopLauncher.java
@@ -54,8 +54,8 @@ public void launch() throws InterruptedException {
             SwingUtilities.invokeLater(() -> {
                 launchFrame.updateProgress(taskCount - tasksLeft.intValue());
                 launchFrame.updateProgressName(progressName);
-                if (tasksLeft == 0) {
-                    launchFrame.setVisible(false);
+                if (tasksLeft <= 0) {
+                    launchFrame.dispose();
                 }
             });
         };
@@ -104,8 +104,8 @@ private static void shutDownLaunchProcess(ExecutorService executorService, Sched
             Runnable statusUpdater)
             throws InterruptedException {
         statusUpdater.run();
-        executorService.shutdown();
         executorService.awaitTermination(5, TimeUnit.SECONDS);
+        executorService.shutdown();
         scheduledExecutorService.shutdown();
     }