diff --git a/src/leap/soledad/server/app.py b/src/leap/soledad/server/app.py
index cad4f31b09332500b5e1d0d65fee913518ff5eeb..2004de1e4cdb29acd5d18d95d797fd37d227a9aa 100644
--- a/src/leap/soledad/server/app.py
+++ b/src/leap/soledad/server/app.py
@@ -32,13 +32,14 @@ from leap.soledad.server import get_config
 logger = getLogger(__name__)
 
 
+def _deferred_shutdown(status):
+    reactor.addSystemEventTrigger('after', 'shutdown',
+                                  os._exit, status)
+    reactor.stop()
+
+
 def _exit(status):
-    if reactor.running:
-        reactor.addSystemEventTrigger(
-            'after', 'shutdown', os._exit, status)
-        reactor.stop()
-    else:
-        os._exit(status)
+    reactor.callWhenRunning(_deferred_shutdown, status)
 
 
 def _log_and_exit(failure):