diff --git a/src/sakia/core/money/quant_zerosum.py b/src/sakia/core/money/quant_zerosum.py
index 04ab148762af9e8c36ec410e5b9aed89dfaa803a..c8fb532f27dcbb69f201215ec6dde3ecff570d3d 100644
--- a/src/sakia/core/money/quant_zerosum.py
+++ b/src/sakia/core/money/quant_zerosum.py
@@ -58,7 +58,11 @@ class QuantitativeZSum:
     def localized(self, units=False, international_system=False):
         value = yield from self.value()
 
-        localized_value = QLocale().toString(float(value), 'f', 0)
+        prefix = ""
+        if international_system:
+            localized_value, prefix = Quantitative.to_si(value, self.app.preferences['digits_after_comma'])
+        else:
+            localized_value = QLocale().toString(float(value), 'f', 0)
 
         if units:
             return QCoreApplication.translate("QuantitativeZSum",
diff --git a/src/sakia/core/money/quantitative.py b/src/sakia/core/money/quantitative.py
index c54dd74ee3c2b1d67164a8f2f5bedc6f0c4ac38f..809ce5fe470f43b93d6cb682e9257fd119ea23ab 100644
--- a/src/sakia/core/money/quantitative.py
+++ b/src/sakia/core/money/quantitative.py
@@ -40,8 +40,15 @@ class Quantitative():
         value = yield from self.value()
         return value
 
-    def _to_si(self, value):
+    @staticmethod
+    def to_si(value, digits):
         prefixes = ['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y', 'z', 'y']
+        if value < 0:
+            value = -value
+            multiplier = -1
+        else:
+            multiplier = 1
+
         scientific_value = value
         prefix_index = 0
         prefix = ""
@@ -52,10 +59,9 @@ class Quantitative():
 
         if prefix_index < len(prefixes):
             prefix = prefixes[prefix_index]
-            localized_value = QLocale().toString(float(scientific_value), 'f',
-                                                 self.app.preferences['digits_after_comma'])
+            localized_value = QLocale().toString(float(scientific_value * multiplier), 'f', digits)
         else:
-            localized_value = QLocale().toString(float(value), 'f', 0)
+            localized_value = QLocale().toString(float(value * multiplier), 'f', 0)
 
         return localized_value, prefix
 
@@ -64,7 +70,7 @@ class Quantitative():
         value = yield from self.value()
         prefix = ""
         if international_system:
-            localized_value, prefix = self._to_si(value)
+            localized_value, prefix = Quantitative.to_si(value, self.app.preferences['digits_after_comma'])
         else:
             localized_value = QLocale().toString(float(value), 'f', 0)
 
@@ -82,7 +88,7 @@ class Quantitative():
         value = yield from self.differential()
         prefix = ""
         if international_system:
-            localized_value, prefix = self._to_si(value)
+            localized_value, prefix = Quantitative.to_si(value, self.app.preferences['digits_after_comma'])
         else:
             localized_value = QLocale().toString(float(value), 'f', 0)
 
diff --git a/src/sakia/core/money/relative.py b/src/sakia/core/money/relative.py
index eae0781f81db21f527e2f9881108e3b3d226203c..a524e468468f9e61265ea52fd0e1155c57473e30 100644
--- a/src/sakia/core/money/relative.py
+++ b/src/sakia/core/money/relative.py
@@ -43,8 +43,14 @@ class Relative:
         value = yield from self.value()
         return value
 
-    def _to_si(self, value):
+    @staticmethod
+    def to_si(value, digits):
         prefixes = ['', 'd', 'c', 'm', 'µ', 'n', 'p', 'f', 'a', 'z', 'y']
+        if value < 0:
+            value = -value
+            multiplier = -1
+        else:
+            multiplier = 1
         scientific_value = value
         prefix_index = 0
         prefix = ""
@@ -58,11 +64,9 @@ class Relative:
 
         if prefix_index < len(prefixes):
             prefix = prefixes[prefix_index]
-            localized_value = QLocale().toString(float(scientific_value), 'f',
-                                                 self.app.preferences['digits_after_comma'])
+            localized_value = QLocale().toString(float(scientific_value * multiplier), 'f', digits)
         else:
-            localized_value = QLocale().toString(float(value), 'f',
-                                                 self.app.preferences['digits_after_comma'])
+            localized_value = QLocale().toString(float(value * multiplier), 'f', digits)
 
         return localized_value, prefix
 
@@ -71,7 +75,7 @@ class Relative:
         value = yield from self.value()
         prefix = ""
         if international_system:
-            localized_value, prefix = self._to_si(value)
+            localized_value, prefix = Relative.to_si(value, self.app.preferences['digits_after_comma'])
         else:
             localized_value = QLocale().toString(float(value), 'f', self.app.preferences['digits_after_comma'])
 
@@ -88,7 +92,7 @@ class Relative:
         value = yield from self.differential()
         prefix = ""
         if international_system and value != 0:
-            localized_value, prefix = self._to_si(value)
+            localized_value, prefix = Relative.to_si(value, self.app.preferences['digits_after_comma'])
         else:
             localized_value = QLocale().toString(float(value), 'f', self.app.preferences['digits_after_comma'])
 
diff --git a/src/sakia/core/money/relative_zerosum.py b/src/sakia/core/money/relative_zerosum.py
index 0e755413802765b2b0afc56d7cc2f110da2b6967..79629e88f829311c32c2583556f15c9d8c98ed69 100644
--- a/src/sakia/core/money/relative_zerosum.py
+++ b/src/sakia/core/money/relative_zerosum.py
@@ -2,6 +2,7 @@ from PyQt5.QtCore import QCoreApplication, QT_TRANSLATE_NOOP, QLocale
 from .relative import Relative
 import asyncio
 
+
 class RelativeZSum:
     _NAME_STR_ = QT_TRANSLATE_NOOP('RelativeZSum', 'Relat Z-sum')
     _REF_STR_ = QT_TRANSLATE_NOOP('RelativeZSum', "{0} R0 {1}")
@@ -59,7 +60,11 @@ class RelativeZSum:
     def localized(self, units=False, international_system=False):
         value = yield from self.value()
 
-        localized_value = QLocale().toString(float(value), 'f', self.app.preferences['digits_after_comma'])
+        prefix = ""
+        if international_system:
+            localized_value, prefix = Relative.to_si(value, self.app.preferences['digits_after_comma'])
+        else:
+            localized_value = QLocale().toString(float(value), 'f', self.app.preferences['digits_after_comma'])
 
         if units:
             return QCoreApplication.translate("RelativeZSum", RelativeZSum._REF_STR_)\
@@ -71,7 +76,11 @@ class RelativeZSum:
     def diff_localized(self, units=False, international_system=False):
         value = yield from self.differential()
 
-        localized_value = QLocale().toString(float(value), 'f', self.app.preferences['digits_after_comma'])
+        prefix = ""
+        if international_system and value != 0:
+            localized_value, prefix = Relative.to_si(value, self.app.preferences['digits_after_comma'])
+        else:
+            localized_value = QLocale().toString(float(value), 'f', self.app.preferences['digits_after_comma'])
 
         if units:
             return QCoreApplication.translate("RelativeZSum", RelativeZSum._REF_STR_)\
diff --git a/src/sakia/core/wallet.py b/src/sakia/core/wallet.py
index 3a1ce1bc2c54e94e88ee5d6bf202e13ffe6c1e03..ae43c72e0d00958e22f2718f0c98b510ba4f614c 100644
--- a/src/sakia/core/wallet.py
+++ b/src/sakia/core/wallet.py
@@ -235,8 +235,6 @@ class Wallet(QObject):
 
         time = block['medianTime']
         txid = len(block['transactions'])
-        key = None
-        logging.debug("Key : {0} : {1}".format(salt, password))
         if self.walletid == 0:
             key = SigningKey(salt, password)
         else:
diff --git a/src/sakia/gui/certification.py b/src/sakia/gui/certification.py
index a46712688d28f62d1451b57036280ebac9b0f7d4..c79a964651cd2bda625abb2633856764e0a2a70a 100644
--- a/src/sakia/gui/certification.py
+++ b/src/sakia/gui/certification.py
@@ -36,8 +36,8 @@ class CertificationDialog(QDialog, Ui_CertificationDialog):
         for community in self.account.communities:
             self.combo_community.addItem(community.currency)
 
-        for contact in certifier.contacts:
-            self.combo_contact.addItem(contact['name'])
+        for contact_name in sorted([c['name'] for c in certifier.contacts], key=str.lower):
+            self.combo_contact.addItem(contact_name)
         if len(certifier.contacts) == 0:
             self.radio_pubkey.setChecked(True)
             self.radio_contact.setEnabled(False)
@@ -55,8 +55,10 @@ class CertificationDialog(QDialog, Ui_CertificationDialog):
     @asyncio.coroutine
     def accept(self):
         if self.radio_contact.isChecked():
-            index = self.combo_contact.currentIndex()
-            pubkey = self.account.contacts[index]['pubkey']
+            for contact in self.account.contacts:
+                if contact['name'] == self.combo_contact.currentText():
+                    pubkey = contact['pubkey']
+                    break
         else:
             pubkey = self.edit_pubkey.text()
 
diff --git a/src/sakia/gui/process_cfg_account.py b/src/sakia/gui/process_cfg_account.py
index 02e6ffcc9c7edf0daf460ff9c350d41158a05473..cfdd5f3bffb890ce976eeada8da5944fe96859dd 100644
--- a/src/sakia/gui/process_cfg_account.py
+++ b/src/sakia/gui/process_cfg_account.py
@@ -13,6 +13,8 @@ from ..models.communities import CommunitiesListModel
 from ..tools.exceptions import KeyAlreadyUsed, Error, NoPeerAvailable
 
 from PyQt5.QtWidgets import QDialog, QMessageBox
+from PyQt5.QtCore import QRegExp
+from PyQt5.QtGui import QRegExpValidator
 
 
 class Step():
@@ -144,6 +146,9 @@ class ProcessConfigureAccount(QDialog, Ui_AccountConfigurationDialog):
         # Set up the user interface from Designer.
         super().__init__()
         self.setupUi(self)
+        regexp = QRegExp('[A-Za-z0-9_-]*')
+        validator = QRegExpValidator(regexp)
+        self.edit_account_name.setValidator(validator)
         self.account = account
         self.password_asker = None
         self.app = app
diff --git a/src/sakia/gui/transfer.py b/src/sakia/gui/transfer.py
index 3929b13a0a0159bbb932ef272e5dbf32e3173fce..25efea077fd3ce3f55fbcfb437956dad30936f9c 100644
--- a/src/sakia/gui/transfer.py
+++ b/src/sakia/gui/transfer.py
@@ -51,8 +51,8 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
         for wallet in self.account.wallets:
             self.combo_wallets.addItem(wallet.name)
 
-        for contact in sender.contacts:
-            self.combo_contact.addItem(contact['name'])
+        for contact_name in sorted([c['name'] for c in sender.contacts], key=str.lower):
+            self.combo_contact.addItem(contact_name)
 
         if len(self.account.contacts) == 0:
             self.combo_contact.setEnabled(False)
@@ -96,8 +96,10 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
         comment = self.edit_message.text()
 
         if self.radio_contact.isChecked():
-            index = self.combo_contact.currentIndex()
-            recipient = self.account.contacts[index]['pubkey']
+            for contact in self.account.contacts:
+                if contact['name'] == self.combo_contact.currentText():
+                    recipient = contact['pubkey']
+                    break
         else:
             recipient = self.edit_pubkey.text()
         amount = self.spinbox_amount.value()