diff --git a/src/cutecoin/gui/password_asker.py b/src/cutecoin/gui/password_asker.py
index 96d1dbcd75637e0f86a9153e0c7dfe6b4bfe11ac..82bad7c5c3e0d78502bcef48a9288c7e6955675d 100644
--- a/src/cutecoin/gui/password_asker.py
+++ b/src/cutecoin/gui/password_asker.py
@@ -5,6 +5,8 @@ Created on 24 dec. 2014
 '''
 
 import logging
+import unicodedata
+import re
 
 from PyQt5.QtWidgets import QDialog, QMessageBox
 
@@ -40,16 +42,24 @@ class PasswordAskerDialog(QDialog, Ui_PasswordAskerDialog):
 
     def accept(self):
         password = self.edit_password.text()
-        if self.account.check_password(password):
-            self.remember = self.check_remember.isChecked()
-            self.password = password
-            self.edit_password.setText("")
-            logging.debug("Password is valid")
-            super().accept()
-        else:
+
+        if detect_non_printable(password):
+            QMessageBox.warning(self, "Bad password",
+                                "Non printable characters in password",
+                                QMessageBox.Ok)
+            return False
+
+        if not self.account.check_password(password):
             QMessageBox.warning(self, "Failed to get private key",
                                 "Wrong password typed. Cannot open the private key",
                                 QMessageBox.Ok)
+            return False
+
+        self.remember = self.check_remember.isChecked()
+        self.password = password
+        self.edit_password.setText("")
+        logging.debug("Password is valid")
+        super().accept()
 
     def reject(self):
         self.edit_password.setText("")
@@ -57,3 +67,10 @@ class PasswordAskerDialog(QDialog, Ui_PasswordAskerDialog):
         self.setResult(QDialog.Accepted)
         self.password = ""
         super().reject()
+
+
+def detect_non_printable(data):
+    control_chars = ''.join(map(chr, list(range(0, 32)) + list(range(127, 160))))
+    control_char_re = re.compile('[%s]' % re.escape(control_chars))
+    if control_char_re.search(data):
+        return True
diff --git a/src/cutecoin/gui/transfer.py b/src/cutecoin/gui/transfer.py
index e6eb917dd7261016cd4d2b57de0d1578a770dcfe..c26e461ca3b714130bf458894b98f0fff7c666b0 100644
--- a/src/cutecoin/gui/transfer.py
+++ b/src/cutecoin/gui/transfer.py
@@ -55,6 +55,12 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
             recipient = self.edit_pubkey.text()
         amount = self.spinbox_amount.value()
 
+        if not amount:
+            QMessageBox.critical(self, "Money transfer",
+                                 "No amount. Please give the transfert amount",
+                                 QMessageBox.Ok)
+            return
+
         password = self.password_asker.exec_()
         if self.password_asker.result() == QDialog.Rejected:
             return