diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c
index 8567d3bfdb72234085c8d2bca4248933ccd4159f..d15ecdcf9edefd00773ab4256d8a7a4c328dba12 100644
--- a/sflphone-client-gnome/src/config/accountconfigdialog.c
+++ b/sflphone-client-gnome/src/config/accountconfigdialog.c
@@ -32,6 +32,8 @@
 #include <libsexy/sexy-icon-entry.h>
 #endif
 
+#define PW_HIDDEN		"*****"
+
 #include <string.h>
 #include <dbus/dbus.h>
 #include <config.h>
@@ -44,7 +46,6 @@
  * in a private structure.
  * Local variables 
  */
-
 GtkDialog * dialog;
 GtkWidget * hbox;
 GtkWidget * label;
@@ -95,6 +96,14 @@ enum {
     COLUMN_CREDENTIAL_COUNT
 };
 
+/*
+ * Display / Hide the password
+ */
+static void show_password_cb (GtkWidget *widget, gpointer data)
+{
+	gtk_entry_set_visibility (GTK_ENTRY (data), !gtk_entry_get_visibility (GTK_ENTRY (data)));
+}
+
 /* Signal to protocolComboBox 'changed' */
 	void
 change_protocol_cb (account_t * currentAccount UNUSED)
@@ -133,6 +142,7 @@ static GtkWidget * create_basic_tab(account_t **a)
 	GtkWidget * frame;
 	GtkWidget * table;
 	account_t *currentAccount;
+	GtkWidget * clearTextCheckbox;
 #if GTK_CHECK_VERSION(2,16,0)
 #else
 	GtkWidget *image;
@@ -172,7 +182,7 @@ static GtkWidget * create_basic_tab(account_t **a)
 	gnome_main_section_new (_("Account Parameters"), &frame);
 	gtk_widget_show(frame);
 
-	table = gtk_table_new (9, 2  ,  FALSE/* homogeneous */);
+	table = gtk_table_new (7, 2  ,  FALSE/* homogeneous */);
 	gtk_table_set_row_spacings( GTK_TABLE(table), 10);
 	gtk_table_set_col_spacings( GTK_TABLE(table), 10);
 	gtk_widget_show(table);
@@ -245,7 +255,7 @@ static GtkWidget * create_basic_tab(account_t **a)
 #if GTK_CHECK_VERSION(2,16,0)
 	entryPassword = gtk_entry_new();
     GtkSettings *settings = gtk_settings_get_default ();
-    g_object_set (G_OBJECT (settings), "gtk-entry-password-hint-timeout", 600, NULL);
+    //g_object_set (G_OBJECT (settings), "gtk-entry-password-hint-timeout", 600, NULL);
 	gtk_entry_set_icon_from_stock (GTK_ENTRY (entryPassword), GTK_ENTRY_ICON_PRIMARY, GTK_STOCK_DIALOG_AUTHENTICATION);
 #else
 	entryPassword = sexy_icon_entry_new();
@@ -256,16 +266,20 @@ static GtkWidget * create_basic_tab(account_t **a)
 	gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryPassword);
 	gtk_entry_set_text(GTK_ENTRY(entryPassword), curPassword);
 	gtk_table_attach ( GTK_TABLE( table ), entryPassword, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-    g_signal_connect(G_OBJECT (entryPassword), "changed", G_CALLBACK (update_credential_cb), NULL);
+    g_signal_connect (G_OBJECT (entryPassword), "changed", G_CALLBACK (update_credential_cb), NULL);
     g_object_set_data (G_OBJECT (entryPassword), "column", GINT_TO_POINTER (COLUMN_CREDENTIAL_PASSWORD));
-    
+	
+	clearTextCheckbox = gtk_check_button_new_with_mnemonic (_("Show password"));
+    g_signal_connect (clearTextCheckbox, "toggled", G_CALLBACK (show_password_cb), entryPassword);
+    gtk_table_attach (GTK_TABLE (table), clearTextCheckbox, 1, 2, 5, 6, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+
 	label = gtk_label_new_with_mnemonic (_("_Voicemail number"));
-	gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, 5, 6, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+	gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, 6, 7, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
 	gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5);
 	entryMailbox = gtk_entry_new();
 	gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryMailbox);
 	gtk_entry_set_text(GTK_ENTRY(entryMailbox), curMailbox);
-	gtk_table_attach ( GTK_TABLE( table ), entryMailbox, 1, 2, 5, 6, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+	gtk_table_attach ( GTK_TABLE( table ), entryMailbox, 1, 2, 6, 7, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
 
 	gtk_widget_show_all( table );
 	gtk_container_set_border_width (GTK_CONTAINER(table), 10);
@@ -274,7 +288,7 @@ static GtkWidget * create_basic_tab(account_t **a)
 	return frame;
 }
 
-static void fill_treeview_with_credential(GtkListStore * credentialStore, account_t * account) 
+static void fill_treeview_with_credential (GtkListStore * credentialStore, account_t * account) 
 {
         GtkTreeIter iter;
         gtk_list_store_clear(credentialStore);
@@ -377,7 +391,7 @@ static void cell_edited_cb(GtkCellRendererText *renderer, gchar *path_desc, gcha
     gint column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (renderer), "column"));
     
     if(g_strcasecmp(path_desc, "0") == 0) {
-        if(g_strcasecmp(text, gtk_entry_get_text(GTK_ENTRY(entryUsername))) != 0) {
+        if(g_strcasecmp(text, gtk_entry_get_text (GTK_ENTRY(entryUsername))) != 0) {
             g_signal_handlers_disconnect_by_func (G_OBJECT(entryUsername), G_CALLBACK(update_credential_cb), NULL);
         }
     }  
@@ -391,7 +405,7 @@ static void cell_edited_cb(GtkCellRendererText *renderer, gchar *path_desc, gcha
 static void editing_started_cb (GtkCellRenderer *cell, GtkCellEditable * editable, const gchar * path, gpointer data)
 {
     DEBUG("Editing started");
-    gtk_entry_set_visibility(GTK_ENTRY(editable), FALSE);
+	// gtk_entry_set_text (GTK_ENTRY (editable), gtk_entry_get_text (GTK_ENTRY(entryPassword)));
 }
 
 static void show_advanced_zrtp_options_cb(GtkWidget *widget UNUSED, gpointer data)
@@ -463,7 +477,6 @@ static void use_sip_tls_cb(GtkWidget *widget, gpointer data)
     }   
 }
 
-
 static set_published_addr_manually_cb(GtkWidget * widget, gpointer data UNUSED)
 {
     DEBUG("set_published_addr_manually_cb");
@@ -534,6 +547,7 @@ GtkWidget * create_security_tab(account_t **a)
     GtkWidget * hbox;
     GtkWidget * editButton;
     GtkWidget * addButton;
+	GtkWidget * clearTextCheckbox;
     GtkCellRenderer * renderer;
     GtkTreeViewColumn * treeViewColumn;
     GtkTreeSelection * treeSelection;
@@ -609,7 +623,7 @@ GtkWidget * create_security_tab(account_t **a)
 
     renderer = gtk_cell_renderer_text_new();
     g_object_set (renderer, "editable", TRUE, "editable-set", TRUE, NULL);
-    g_signal_connect(G_OBJECT (renderer), "edited", G_CALLBACK(cell_edited_cb), credentialStore);
+    g_signal_connect (G_OBJECT (renderer), "edited", G_CALLBACK (cell_edited_cb), credentialStore);
     g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_CREDENTIAL_USERNAME));
     treeViewColumn = gtk_tree_view_column_new_with_attributes (_("Authentication name"),
             renderer,
@@ -619,7 +633,7 @@ GtkWidget * create_security_tab(account_t **a)
 
     renderer = gtk_cell_renderer_text_new();
     g_object_set (renderer, "editable", TRUE, "editable-set", TRUE, NULL);
-    g_signal_connect(G_OBJECT (renderer), "edited", G_CALLBACK(cell_edited_cb), credentialStore);
+    g_signal_connect (G_OBJECT (renderer), "edited", G_CALLBACK (cell_edited_cb), credentialStore);
     g_signal_connect (renderer, "editing-started", G_CALLBACK (editing_started_cb), NULL);
     g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_CREDENTIAL_PASSWORD));
     treeViewColumn = gtk_tree_view_column_new_with_attributes (_("Password"),
@@ -634,7 +648,7 @@ GtkWidget * create_security_tab(account_t **a)
             
     /* Credential Buttons */    
     hbox = gtk_hbox_new(FALSE, 10);
-    gtk_table_attach_defaults(GTK_TABLE(table), hbox, 0, 2, 1, 2);
+    gtk_table_attach_defaults(GTK_TABLE(table), hbox, 0, 3, 1, 2);
     
     addButton = gtk_button_new_from_stock (GTK_STOCK_ADD);
     g_signal_connect (addButton, "clicked", G_CALLBACK (add_credential_cb), credentialStore);
@@ -643,7 +657,6 @@ GtkWidget * create_security_tab(account_t **a)
     deleteCredButton = gtk_button_new_from_stock (GTK_STOCK_REMOVE);
     g_signal_connect (deleteCredButton, "clicked", G_CALLBACK (delete_credential_cb), treeViewCredential);
     gtk_box_pack_start(GTK_BOX(hbox), deleteCredButton, FALSE, FALSE, 0);
- 
 
     /* Security Section */
     gnome_main_section_new_with_table (_("Security"), &frame, &table, 2, 3);
diff --git a/sflphone-client-gnome/src/config/assistant.c b/sflphone-client-gnome/src/config/assistant.c
index f9431a66ae05e7072a6bee8dde288b42e541db12..c3be338bced5e9a7771b67165d8c240b44089019 100644
--- a/sflphone-client-gnome/src/config/assistant.c
+++ b/sflphone-client-gnome/src/config/assistant.c
@@ -59,6 +59,12 @@ void set_account_type( GtkWidget* widget , gpointer data UNUSED ) {
 	}
 }
 
+static void show_password_cb (GtkWidget *widget, gpointer data)
+{
+	gtk_entry_set_visibility (GTK_ENTRY (data), !gtk_entry_get_visibility (GTK_ENTRY (data)));
+}
+
+
 /**
  * Fills string message with the final message of account registration
  * with alias, server and username specified.
@@ -295,10 +301,11 @@ GtkWidget* build_sip_account_configuration( void ) {
 	GtkWidget* table;
 	GtkWidget* label;
     GtkWidget *image;
+	GtkWidget * clearTextCheckbox;
 
 	wiz->sip_account = create_vbox( GTK_ASSISTANT_PAGE_CONTENT , _("SIP account settings") , _("Please fill the following information"));
 	// table
-	table = gtk_table_new ( 5, 2  ,  FALSE/* homogeneous */);
+	table = gtk_table_new ( 7, 2  ,  FALSE/* homogeneous */);
 	gtk_table_set_row_spacings( GTK_TABLE(table), 10);
 	gtk_table_set_col_spacings( GTK_TABLE(table), 10);
 	gtk_box_pack_start( GTK_BOX(wiz->sip_account) , table , TRUE, TRUE, 0);
@@ -352,19 +359,23 @@ GtkWidget* build_sip_account_configuration( void ) {
 	gtk_label_set_mnemonic_widget (GTK_LABEL (label), wiz->sip_password);
 	gtk_entry_set_visibility(GTK_ENTRY(wiz->sip_password), FALSE);
 	gtk_table_attach ( GTK_TABLE( table ), wiz->sip_password, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+	
+	clearTextCheckbox = gtk_check_button_new_with_mnemonic (_("Show password"));
+    g_signal_connect (clearTextCheckbox, "toggled", G_CALLBACK (show_password_cb), wiz->sip_password);
+    gtk_table_attach (GTK_TABLE (table), clearTextCheckbox, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
 
     // voicemail number field
 	label = gtk_label_new_with_mnemonic (_("_Voicemail number"));
-	gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+	gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, 5, 6, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
 	gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5);
 	wiz->sip_voicemail = gtk_entry_new();
 	gtk_label_set_mnemonic_widget (GTK_LABEL (label), wiz->sip_voicemail);
-	gtk_table_attach ( GTK_TABLE( table ), wiz->sip_voicemail, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+	gtk_table_attach ( GTK_TABLE( table ), wiz->sip_voicemail, 1, 2, 5, 6, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
 
     // Security options
 	wiz->zrtp_enable = gtk_check_button_new_with_mnemonic(_("Secure communications with _ZRTP"));
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(wiz->zrtp_enable), FALSE);
-	gtk_table_attach ( GTK_TABLE( table ), wiz->zrtp_enable, 0, 1, 5, 6, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+	gtk_table_attach ( GTK_TABLE( table ), wiz->zrtp_enable, 0, 1, 6, 7, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
 	gtk_widget_set_sensitive( GTK_WIDGET( wiz->zrtp_enable ) , TRUE );
 	
 	//gtk_assistant_set_page_complete(GTK_ASSISTANT(wiz->assistant),  wiz->sip_account, TRUE);
@@ -403,10 +414,11 @@ GtkWidget* build_iax_account_configuration( void ) {
 	GtkWidget* label;
 	GtkWidget*  table;
     GtkWidget *image;
+	GtkWidget * clearTextCheckbox;
 
 	wiz->iax_account = create_vbox( GTK_ASSISTANT_PAGE_CONFIRM , _("IAX2 account settings") , _("Please fill the following information"));
 
-	table = gtk_table_new ( 5, 2  ,  FALSE/* homogeneous */);
+	table = gtk_table_new ( 6, 2  ,  FALSE/* homogeneous */);
 	gtk_table_set_row_spacings( GTK_TABLE(table), 10);
 	gtk_table_set_col_spacings( GTK_TABLE(table), 10);
 	gtk_box_pack_start( GTK_BOX(wiz->iax_account) , table , TRUE, TRUE, 0);
@@ -458,13 +470,17 @@ GtkWidget* build_iax_account_configuration( void ) {
 	gtk_entry_set_visibility(GTK_ENTRY(wiz->iax_password), FALSE);
 	gtk_table_attach ( GTK_TABLE( table ), wiz->iax_password, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
 
+	clearTextCheckbox = gtk_check_button_new_with_mnemonic (_("Show password"));
+    g_signal_connect (clearTextCheckbox, "toggled", G_CALLBACK (show_password_cb), wiz->iax_password);
+    gtk_table_attach (GTK_TABLE (table), clearTextCheckbox, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+
     // voicemail number field
 	label = gtk_label_new_with_mnemonic (_("_Voicemail number"));
-	gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+	gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, 5, 6, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
 	gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5);
 	wiz->iax_voicemail = gtk_entry_new();
 	gtk_label_set_mnemonic_widget (GTK_LABEL (label), wiz->iax_voicemail);
-	gtk_table_attach ( GTK_TABLE( table ), wiz->iax_voicemail, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+	gtk_table_attach ( GTK_TABLE( table ), wiz->iax_voicemail, 1, 2, 5, 6, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
 
 	current -> state = ACCOUNT_STATE_UNREGISTERED;