diff --git a/src/sakia/gui/sub/certification/controller.py b/src/sakia/gui/sub/certification/controller.py
index d63e1db1ace3968e63fc38f61b0816dafe8302e5..c658a9a0ebd7580d8d7f6a2a862651e1122bb910 100644
--- a/src/sakia/gui/sub/certification/controller.py
+++ b/src/sakia/gui/sub/certification/controller.py
@@ -1,5 +1,3 @@
-import asyncio
-
 from PyQt5.QtCore import Qt, QObject, pyqtSignal
 from PyQt5.QtWidgets import QApplication, QDialog, QVBoxLayout
 
@@ -90,10 +88,10 @@ class CertificationController(QObject):
         dialog.layout().addWidget(certification.view)
         certification.accepted.connect(dialog.accept)
         certification.rejected.connect(dialog.reject)
-        return certification.exec()
+        return dialog.exec()
 
     @classmethod
-    async def certify_identity(cls, parent, app, connection, identity):
+    def certify_identity(cls, parent, app, connection, identity):
         """
         Certify and identity
         :param sakia.gui.component.controller.ComponentController parent: the parent
@@ -102,11 +100,18 @@ class CertificationController(QObject):
         :param sakia.data.entities.Identity identity: the identity certified
         :return:
         """
-        dialog = cls.create(parent, app)
-        dialog.view.combo_connections.setCurrentText(connection.title())
-        dialog.user_information.change_identity(identity)
-        dialog.refresh()
-        return await dialog.async_exec()
+        dialog = QDialog(parent)
+        dialog.setWindowTitle(dialog.tr("Certification"))
+        dialog.setLayout(QVBoxLayout(dialog))
+        certification = cls.create(parent, app)
+        if connection:
+            certification.view.combo_connections.setCurrentText(connection.title())
+            certification.user_information.change_identity(identity)
+            certification.refresh()
+        dialog.layout().addWidget(certification.view)
+        certification.accepted.connect(dialog.accept)
+        certification.rejected.connect(dialog.reject)
+        return dialog.exec()
 
     def change_connection(self, index):
         self.model.set_connection(index)
@@ -154,15 +159,14 @@ using cross checking which will help to reveal the problem if needs to be.</br>"
         if result[0]:
             QApplication.restoreOverrideCursor()
             await self.view.show_success(self.model.notification())
-            self.view.accept()
+            self.accepted.emit()
         else:
             await self.view.show_error(self.model.notification(), result[1])
             QApplication.restoreOverrideCursor()
             self.view.button_box.setEnabled(True)
 
-    @asyncify
-    async def reject(self):
-        self.view.reject()
+    def reject(self):
+        self.rejected.emit()
 
     def refresh(self):
         stock = self.model.get_cert_stock()
@@ -208,14 +212,3 @@ using cross checking which will help to reveal the problem if needs to be.</br>"
         Refresh user information
         """
         self.user_information.search_identity(self.search_user.model.identity())
-
-    def async_exec(self):
-        future = asyncio.Future()
-        self.view.finished.connect(lambda r: future.set_result(r))
-        self.view.open()
-        self.refresh()
-        return future
-
-    def exec(self):
-        self.refresh()
-        self.view.exec()
diff --git a/src/sakia/gui/sub/certification/view.py b/src/sakia/gui/sub/certification/view.py
index 00753c97f53a58cee6f4c87238b875d2bd64b048..0c6ceaa9dab94be90d2ffe0df0496ddf727a220d 100644
--- a/src/sakia/gui/sub/certification/view.py
+++ b/src/sakia/gui/sub/certification/view.py
@@ -1,4 +1,4 @@
-from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QFileDialog, QMessageBox
+from PyQt5.QtWidgets import QWidget, QDialogButtonBox, QFileDialog, QMessageBox
 from PyQt5.QtCore import QT_TRANSLATE_NOOP, Qt, pyqtSignal
 from .certification_uic import Ui_CertificationWidget
 from sakia.gui.widgets import toast
@@ -8,7 +8,7 @@ from duniterpy.documents import Identity, MalformedDocumentError
 from enum import Enum
 
 
-class CertificationView(QDialog, Ui_CertificationWidget):
+class CertificationView(QWidget, Ui_CertificationWidget):
     """
     The view of the certification component
     """
diff --git a/src/sakia/gui/sub/transfer/controller.py b/src/sakia/gui/sub/transfer/controller.py
index ee4839a533f6fe957ef551bf56d8b6b4aecded88..fca4f9b4222ded3b4ccae98c4d1c4ef42ce09e17 100644
--- a/src/sakia/gui/sub/transfer/controller.py
+++ b/src/sakia/gui/sub/transfer/controller.py
@@ -83,7 +83,8 @@ class TransferController(QObject):
     def open_transfer_with_pubkey(cls, parent, app, connection, pubkey):
         transfer = cls.create(parent, app)
         transfer.view.groupbox_connection.show()
-        transfer.view.combo_connections.setCurrentText(connection.title())
+        if connection:
+            transfer.view.combo_connections.setCurrentText(connection.title())
         transfer.view.edit_pubkey.setText(pubkey)
         transfer.view.radio_pubkey.setChecked(True)
 
diff --git a/src/sakia/gui/sub/transfer/view.py b/src/sakia/gui/sub/transfer/view.py
index fe04ddec9871ca4fb9804cb962a7bf303876051d..96b53dbd0636e45223d7813173b447c2fb0aec62 100644
--- a/src/sakia/gui/sub/transfer/view.py
+++ b/src/sakia/gui/sub/transfer/view.py
@@ -1,4 +1,4 @@
-from PyQt5.QtWidgets import QDialog, QDialogButtonBox
+from PyQt5.QtWidgets import QWidget, QDialogButtonBox
 from PyQt5.QtGui import QRegExpValidator
 from PyQt5.QtCore import QT_TRANSLATE_NOOP, QRegExp
 from .transfer_uic import Ui_TransferMoneyWidget
@@ -7,7 +7,7 @@ from sakia.gui.widgets import toast
 from sakia.gui.widgets.dialogs import QAsyncMessageBox
 
 
-class TransferView(QDialog, Ui_TransferMoneyWidget):
+class TransferView(QWidget, Ui_TransferMoneyWidget):
     """
     Transfer component view
     """
diff --git a/src/sakia/gui/widgets/context_menu.py b/src/sakia/gui/widgets/context_menu.py
index 5a6c107ea01ba1644ed868936917c4478c78ccc1..a1a371c944d9ba2eace9932cdd00f9162e49baa5 100644
--- a/src/sakia/gui/widgets/context_menu.py
+++ b/src/sakia/gui/widgets/context_menu.py
@@ -39,7 +39,7 @@ class ContextMenu(QObject):
         informations.triggered.connect(lambda checked, i=identity: menu.informations(i))
         menu.qmenu.addAction(informations)
 
-        if identity.uid and menu._connection.pubkey != identity.pubkey:
+        if identity.uid and (not menu._connection or menu._connection.pubkey != identity.pubkey):
             certify = QAction(menu.tr("Certify identity"), menu.qmenu.parent())
             certify.triggered.connect(lambda checked, i=identity: menu.certify_identity(i))
             menu.qmenu.addAction(certify)
@@ -152,9 +152,8 @@ class ContextMenu(QObject):
     def view_wot(self, identity):
         self.view_identity_in_wot.emit(identity)
 
-    @asyncify
-    async def certify_identity(self, identity):
-        await CertificationController.certify_identity(None, self._app, self._connection, identity)
+    def certify_identity(self, identity):
+        CertificationController.certify_identity(None, self._app, self._connection, identity)
 
     def send_again(self, transfer):
         TransferController.send_transfer_again(None, self._app, self._connection, transfer)