diff --git a/src/cutecoin/core/account.py b/src/cutecoin/core/account.py
index b81b54052c72849063c99c031d658137a95e5973..e490f5f01e7d56aa44e5c5103e591738e5b68436 100644
--- a/src/cutecoin/core/account.py
+++ b/src/cutecoin/core/account.py
@@ -82,7 +82,12 @@ class Account(object):
         return (key.pubkey == self.pubkey)
 
     def add_contact(self, person):
-        self.contacts.append(person)
+        same_contact = [contact for contact in self.contacts if person.pubkey == contact.pubkey]
+        if len(same_contact) == 0:
+            print("add contact")
+            self.contacts.append(person)
+            return True
+        return False
 
     def add_community(self, server, port):
         logging.debug("Adding a community")
diff --git a/src/cutecoin/gui/add_contact.py b/src/cutecoin/gui/add_contact.py
index d6fae219b068c5b7db37c4cbbf4255b3018a9c90..4e9546d3773d65e773eff1ae70ac8ff16dc8bf80 100644
--- a/src/cutecoin/gui/add_contact.py
+++ b/src/cutecoin/gui/add_contact.py
@@ -31,9 +31,10 @@ class AddContactDialog(QDialog, Ui_AddContactDialog):
     def accept(self):
         name = self.edit_name.text()
         pubkey = self.edit_pubkey.text()
-        self.account.add_contact(Person(name, pubkey))
-        self.main_window.menu_contacts_list.addAction(name)
-        self.main_window.app.save(self.account)
+        result = self.account.add_contact(Person(name, pubkey))
+        if result:
+            self.main_window.menu_contacts_list.addAction(name)
+            self.main_window.app.save(self.account)
         self.close()
 
     def name_edited(self, new_name):