diff --git a/res/ui/accountConfigurationDialog.ui b/res/ui/accountConfigurationDialog.ui
index cbc91a9c11ec198e4e4d94ab461deabd12a1b534..b4dadc108853b1fdb00bca75ca0ac93a64850904 100644
--- a/res/ui/accountConfigurationDialog.ui
+++ b/res/ui/accountConfigurationDialog.ui
@@ -140,7 +140,7 @@
               <number>5</number>
              </property>
              <item>
-              <widget class="QLabel" name="label_fingerprint">
+              <widget class="QLabel" name="label_info">
                <property name="text">
                 <string/>
                </property>
@@ -149,7 +149,7 @@
              <item>
               <widget class="QPushButton" name="button_generate">
                <property name="text">
-                <string>Generate a secret key</string>
+                <string>Show public key</string>
                </property>
               </widget>
              </item>
@@ -399,6 +399,22 @@
     </hint>
    </hints>
   </connection>
+  <connection>
+   <sender>button_generate</sender>
+   <signal>clicked()</signal>
+   <receiver>AccountConfigurationDialog</receiver>
+   <slot>action_show_pubkey()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>290</x>
+     <y>161</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>199</x>
+     <y>118</y>
+    </hint>
+   </hints>
+  </connection>
  </connections>
  <slots>
   <slot>open_process_add_community()</slot>
@@ -411,5 +427,6 @@
   <slot>open_generate_account_key()</slot>
   <slot>action_edit_account_key()</slot>
   <slot>action_edit_account_name()</slot>
+  <slot>action_show_pubkey()</slot>
  </slots>
 </ui>
diff --git a/setup.py b/setup.py
index df0616905f2e697d73f52680bf56ebe47b89e9da..07d205b0c9041e7ac969ddf676791869babbc0c3 100644
--- a/setup.py
+++ b/setup.py
@@ -12,12 +12,14 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), 'lib')))
 sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), 'src')))
 
 print(sys.path)
-includes = ["sip", "re", "json", "logging", "hashlib", "os", "urllib", "ucoin", "requests"]
+includes = ["sip", "re", "json", "logging", "hashlib", "os", "urllib", "ucoinpy", "requests", "nacl", "cffi"]
 excludes = []
-packages = ["gnupg"]
+packages = []
+includefiles = []
 
 options = {"path": sys.path,
            "includes": includes,
+           "include_files": includefiles,
            "excludes": excludes,
            "packages": packages,
            }
@@ -42,7 +44,7 @@ target = Executable(
 # creation du setup
 setup(
     name = "cutecoin",
-    version = "0.4.1",
+    version = "0.5",
     description = "UCoin client",
     author = "Inso",
     options = {"build_exe": options},
diff --git a/src/cutecoin/gui/communityTabWidget.py b/src/cutecoin/gui/communityTabWidget.py
index de492dea325325ecea08f9fc8a2892e3d181e605..40ed31f1903b99bd751258e161a51c033ce744b2 100644
--- a/src/cutecoin/gui/communityTabWidget.py
+++ b/src/cutecoin/gui/communityTabWidget.py
@@ -8,6 +8,7 @@ import logging
 from PyQt5.QtWidgets import QWidget, QErrorMessage
 from cutecoin.models.members import MembersListModel
 from cutecoin.gen_resources.communityTabWidget_uic import Ui_CommunityTabWidget
+from cutecoin.gui.addContactDialog import AddContactDialog
 
 
 class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
@@ -25,6 +26,7 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
         self.community = community
         self.account = account
         self.list_community_members.setModel(MembersListModel(community))
+        self.list_community_members.doubleClicked.connect(self.add_member_as_contact)
         if self.account.member_of(self.community):
             self.button_membership.setText("Send leaving demand")
             self.button_membership.clicked.connect(self.send_membership_leaving)
@@ -32,6 +34,18 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
             self.button_membership.setText("Send membership demand")
             self.button_membership.clicked.connect(self.send_membership_demand)
 
+    def add_member_as_contact(self, index):
+        members_model = self.list_community_members.model()
+        members = members_model.members
+        logging.debug("Members : {0}".format(len(members)))
+        if index.row() < len(members):
+            dialog = AddContactDialog(self.account, self)
+            person = members[index.row()]
+            dialog.edit_name.setText(person.name)
+            dialog.edit_pubkey.setText(person.pubkey)
+            dialog.exec_()
+
+
     def send_membership_demand(self):
         result = self.account.send_membership_in(self.community)
         if (result):
diff --git a/src/cutecoin/gui/processConfigureAccount.py b/src/cutecoin/gui/processConfigureAccount.py
index c0fe26b14e8a8c227c3ab0edad295f556a9042e9..df347840992dd93fb0e80cd9b3a5c8ff66888f18 100644
--- a/src/cutecoin/gui/processConfigureAccount.py
+++ b/src/cutecoin/gui/processConfigureAccount.py
@@ -60,14 +60,18 @@ class StepPageKey(Step):
         super().__init__(config_dialog)
 
     def is_valid(self):
-        if len(self.config_dialog.edit_password.text()) < 8:
+        if len(self.config_dialog.edit_password.text()) < 2:
             return False
 
         if len(self.config_dialog.edit_email.text()) < 2:
             return False
 
+        if len(self.config_dialog.edit_password.text()) < 8:
+            self.config_dialog.label_info.setText("Warning : password is too short")
+
         if self.config_dialog.edit_password.text() != \
             self.config_dialog.edit_password_repeat.text():
+            self.config_dialog.label_info.setText("Error : passwords are different")
             return False
 
         return True
@@ -173,6 +177,12 @@ class ProcessConfigureAccount(QDialog, Ui_AccountConfigurationDialog):
         else:
             self.button_next.setEnabled(False)
 
+    def action_show_pubkey(self):
+        salt = self.edit_email.text()
+        password = self.edit_password.text()
+        pubkey = SigningKey(salt, password).pubkey
+        QMessageBox.information(self, "Public key", "These parameters pubkeys are : {0}".format(pubkey))
+
     def action_edit_account_name(self):
         if self.step.is_valid():
             self.button_next.setEnabled(True)