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/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()