diff --git a/src/sakia/app.py b/src/sakia/app.py
index a6654f940640841f04d48bdc0da1a35717a8e155..997b88a4c132d4775174b89c195a40635beb21a3 100644
--- a/src/sakia/app.py
+++ b/src/sakia/app.py
@@ -88,9 +88,7 @@ class Application(QObject):
         app_data = AppDataFile.in_config_path(options.config_path).load_or_init()
         app = cls(qapp, loop, options, app_data, None, None, options.currency, None)
         #app.set_proxy()
-        app.get_last_version()
         app.load_profile(options.profile)
-        app.start_coroutines()
         app.documents_service = DocumentsService.instanciate(app)
         app.switch_language()
         return app
diff --git a/src/sakia/helpers.py b/src/sakia/helpers.py
index d7a0fd4a03238f8fa006386bb3553abad1a6e1e4..ad1c10c65dc94dc91fbffbf7fcbf7e518c62f935 100644
--- a/src/sakia/helpers.py
+++ b/src/sakia/helpers.py
@@ -1,4 +1,5 @@
 import re
+import hashlib
 from PyQt5.QtCore import QSharedMemory
 from PyQt5.QtWidgets import QApplication
 
@@ -17,8 +18,11 @@ def detect_non_printable(data):
         return True
 
 
-def single_instance_lock():
-    sharedMemory = QSharedMemory("77rWEV37vupNhQs6ktDREthqSciyV77OYrqPBSwV755JFIhl9iOywB7G5DkAKU8Y")
+def single_instance_lock(currency):
+    key = hashlib.sha256(currency.encode('utf-8')
+                         + "77rWEV37vupNhQs6ktDREthqSciyV77OYrqPBSwV755JFIhl9iOywB7G5DkAKU8Y".encode('utf-8'))\
+        .hexdigest()
+    sharedMemory = QSharedMemory(key)
     if sharedMemory.attach(QSharedMemory.ReadOnly):
         sharedMemory.detach()
         return None
diff --git a/src/sakia/main.py b/src/sakia/main.py
index 599cbdfc2d066246c810b94adc940d8ad977a127..c94962f0be38d83984b36d421a369dcda428c6cd 100755
--- a/src/sakia/main.py
+++ b/src/sakia/main.py
@@ -82,15 +82,6 @@ if __name__ == '__main__':
     signal.signal(signal.SIGINT, signal.SIG_DFL)
     sakia = QApplication(sys.argv)
 
-    lock = single_instance_lock()
-    if not lock:
-        lock = single_instance_lock()
-        if not lock:
-            QMessageBox.critical(None, "Sakia",
-                             "Sakia is already running.")
-
-            sys.exit(1)
-
     sys.excepthook = exception_handler
 
     sakia.setStyle('Fusion')
@@ -100,7 +91,17 @@ if __name__ == '__main__':
 
     with loop:
         app = Application.startup(sys.argv, sakia, loop)
+
+        lock = single_instance_lock(app.currency)
+        if not lock:
+            lock = single_instance_lock(app.currency)
+            if not lock:
+                QMessageBox.critical(None, "Sakia",
+                                 "Sakia is already running.")
+
+                sys.exit(1)
         app.start_coroutines()
+        app.get_last_version()
         keep_trying = True
         while not app.blockchain_service.initialized():
             try: