diff --git a/src/dialogs.py b/src/dialogs.py
index 30c84d0ff3add7945d1f6f1bcd2f53d1bce94d78..80f9b1d03b284877d5edc59c15249eda0e1c4e48 100644
--- a/src/dialogs.py
+++ b/src/dialogs.py
@@ -1002,7 +1002,9 @@ class NewChatDialog(InputDialog):
 		liststore = gtkgui_helpers.get_completion_liststore(self.input_entry)
 		self.completion_dict = helpers.get_contact_dict_for_account(account)
 		# add all contacts to the model
-		for jid in self.completion_dict.keys():
+		keys = self.completion_dict.keys()
+		keys.sort()
+		for jid in keys:
 			contact = self.completion_dict[jid]
 			img =  gajim.interface.roster.jabber_state_images['16'][contact.show]
 			liststore.append((img.get_pixbuf(), jid))
@@ -1246,7 +1248,9 @@ class SingleMessageWindow:
 		if to == '':
 			liststore = gtkgui_helpers.get_completion_liststore(self.to_entry)
 			self.completion_dict = helpers.get_contact_dict_for_account(account)
-			for jid in self.completion_dict.keys():
+			keys = self.completion_dict.keys()
+			keys.sort()
+			for jid in keys:
 				contact = self.completion_dict[jid]
 				img = gajim.interface.roster.jabber_state_images['16'][
 						contact.show]