diff --git a/mailbox-cli/src/main/java/org/briarproject/mailbox/cli/Main.kt b/mailbox-cli/src/main/java/org/briarproject/mailbox/cli/Main.kt
index 6dd40c126530145068fe8e719c9e120e708a6d03..1c0c0514fdc0510a6a566e491bbd8543e69f47e2 100644
--- a/mailbox-cli/src/main/java/org/briarproject/mailbox/cli/Main.kt
+++ b/mailbox-cli/src/main/java/org/briarproject/mailbox/cli/Main.kt
@@ -107,6 +107,15 @@ class Main : CliktCommand(
         val javaCliComponent = DaggerJavaCliComponent.builder().build()
         javaCliComponent.inject(this)
 
+        if (wipe) {
+            wipeManager.wipeFilesOnly()
+            println("Mailbox wiped successfully \\o/")
+            exitProcess(0)
+        }
+        startLifecycle()
+    }
+
+    private fun startLifecycle() {
         Runtime.getRuntime().addShutdownHook(
             Thread {
                 lifecycleManager.stopServices()
@@ -114,24 +123,10 @@ class Main : CliktCommand(
             }
         )
 
-        // This is a cli app, we'll always want this fully up when started, so start lifecycle
         lifecycleManager.startServices()
         lifecycleManager.waitForStartup()
 
-        if (wipe) {
-            // FIXME this can cause a deadlock
-            //  see: https://code.briarproject.org/briar/briar-mailbox/-/issues/76
-            val wipeResult = lifecycleManager.wipeMailbox()
-            lifecycleManager.stopServices()
-            lifecycleManager.waitForShutdown()
-            if (wipeResult) {
-                println("Mailbox wiped successfully \\o/")
-                exitProcess(0)
-            } else {
-                println("ERROR: Mailbox was not wiped cleanly")
-                exitProcess(1)
-            }
-        } else if (setupToken != null) {
+        if (setupToken != null) {
             try {
                 setupManager.setToken(setupToken, null)
             } catch (e: InvalidIdException) {
diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/setup/WipeManager.kt b/mailbox-core/src/main/java/org/briarproject/mailbox/core/setup/WipeManager.kt
index 430c47bd240bd380c3896b72a76e5a10106c1c25..7cefaaebb256539775eea64cf40606656dcf1b72 100644
--- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/setup/WipeManager.kt
+++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/setup/WipeManager.kt
@@ -49,7 +49,8 @@ class WipeManager @Inject constructor(
     /**
      * Deletes all files, includes the database files.
      *
-     * This must only be called by the [LifecycleManager].
+     * This must only be called by the [LifecycleManager]
+     * or by the CLI when no lifecycle was started.
      */
     fun wipeFilesOnly() {
         fileManager.deleteAllFiles()