diff --git a/src/cutecoin/core/account.py b/src/cutecoin/core/account.py
index ae4868ab641233e7b40ae999fc7d95322c6f00e3..5701145fb7040a5803720504b39e93094cad07bc 100644
--- a/src/cutecoin/core/account.py
+++ b/src/cutecoin/core/account.py
@@ -357,6 +357,8 @@ class Account(QObject):
             tries = 0
             request = bma.wot.CertifiersOf
             nonlocal registered
+            #TODO: The algorithm is quite dirty
+            #Multiplying the tries without any reason...
             while tries < 3 and not registered[0] and not registered[2]:
                 try:
                     data = yield from community.bma_access.simple_request(request,
diff --git a/src/cutecoin/gui/preferences.py b/src/cutecoin/gui/preferences.py
index 0a9f6ff9de5b05a6750e808971868fc516a0fad9..efabc4f2bd862d4777ddbc4a07fd52b8c224b1ef 100644
--- a/src/cutecoin/gui/preferences.py
+++ b/src/cutecoin/gui/preferences.py
@@ -50,9 +50,9 @@ class PreferencesDialog(QDialog, Ui_PreferencesDialog):
         self.edit_proxy_address.setEnabled(self.checkbox_proxy.isChecked())
         self.checkbox_proxy.stateChanged.connect(self.handle_proxy_change)
 
-        self.spinbox_proxy_port.setValue(self.app.preferences.get('proxy_port', 8080))
         self.spinbox_proxy_port.setMinimum(0)
         self.spinbox_proxy_port.setMaximum(55636)
+        self.spinbox_proxy_port.setValue(self.app.preferences.get('proxy_port', 8080))
         self.edit_proxy_address.setText(self.app.preferences.get('proxy_address', ""))
 
     def handle_proxy_change(self):
diff --git a/src/cutecoin/tests/gui/preferences/__init__.py b/src/cutecoin/tests/gui/preferences/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/cutecoin/tests/gui/preferences/test_preferences_dialog.py b/src/cutecoin/tests/gui/preferences/test_preferences_dialog.py
new file mode 100644
index 0000000000000000000000000000000000000000..768fd531a7f7721e0ef2adb8a2799b8dbfb717c5
--- /dev/null
+++ b/src/cutecoin/tests/gui/preferences/test_preferences_dialog.py
@@ -0,0 +1,71 @@
+import sys
+import unittest
+import asyncio
+import quamash
+import time
+import logging
+from ucoinpy.documents.peer import BMAEndpoint
+from quamash import QApplication
+from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QMessageBox
+from PyQt5.QtCore import QLocale, Qt
+from PyQt5.QtTest import QTest
+from ucoinpy.api.bma import API
+from cutecoin.tests.mocks.monkeypatch import pretender_reversed
+from cutecoin.tests.mocks.bma import init_new_community
+from cutecoin.core.registry.identities import IdentitiesRegistry
+from cutecoin.gui.preferences import PreferencesDialog
+from cutecoin.core.app import Application
+from cutecoin.core import Account, Community, Wallet
+from cutecoin.core.net import Network, Node
+from cutecoin.core.net.api.bma.access import BmaAccess
+from cutecoin.tests import get_application, unitttest_exception_handler
+from ucoinpy.api import bma
+
+
+class TestCertificationDialog(unittest.TestCase):
+    def setUp(self):
+        self.qapplication = get_application()
+        QLocale.setDefault(QLocale("en_GB"))
+        self.lp = quamash.QEventLoop(self.qapplication)
+        asyncio.set_event_loop(self.lp)
+        #self.lp.set_exception_handler(lambda lp, ctx : unitttest_exception_handler(self, lp, ctx))
+        self.identities_registry = IdentitiesRegistry({})
+
+    def tearDown(self):
+        try:
+            self.lp.close()
+        finally:
+            asyncio.set_event_loop(None)
+
+    def test_preferences_default(self):
+        self.application = Application(self.qapplication, self.lp, self.identities_registry)
+        preferences_dialog = PreferencesDialog(self.application)
+        self.assertEqual(preferences_dialog.combo_account.currentText(),
+                         self.application.preferences['account'])
+        self.assertEqual(preferences_dialog.combo_language.currentText(),
+                         self.application.preferences['lang'])
+        self.assertEqual(preferences_dialog.combo_referential.currentIndex(),
+                         self.application.preferences['ref'])
+        self.assertEqual(preferences_dialog.checkbox_expertmode.isChecked(),
+                         self.application.preferences['expert_mode'])
+        self.assertEqual(preferences_dialog.checkbox_maximize.isChecked(),
+                         self.application.preferences['maximized'])
+        self.assertEqual(preferences_dialog.checkbox_notifications.isChecked(),
+                         self.application.preferences['notifications'])
+        self.assertEqual(preferences_dialog.checkbox_proxy.isChecked(),
+                         self.application.preferences['enable_proxy'])
+        self.assertEqual(preferences_dialog.edit_proxy_address.text(),
+                         self.application.preferences['proxy_address'])
+        self.assertEqual(preferences_dialog.spinbox_proxy_port.value(),
+                         self.application.preferences['proxy_port'])
+        self.assertEqual(preferences_dialog.checkbox_international_system.isChecked(),
+                         self.application.preferences['international_system_of_units'])
+        self.assertEqual(preferences_dialog.checkbox_auto_refresh.isChecked(),
+                         self.application.preferences['auto_refresh'])
+        self.lp.run_until_complete(asyncio.sleep(1))
+
+
+if __name__ == '__main__':
+    logging.basicConfig(stream=sys.stderr)
+    logging.getLogger().setLevel(logging.DEBUG)
+    unittest.main()