diff --git a/sflphone-gtk/src/accountwindow.c b/sflphone-gtk/src/accountwindow.c
index 5425304756a59cb68cfce727f4b714c1bf0526a5..da1de87bc6828e17918e4bcd4dc81698042b8b90 100644
--- a/sflphone-gtk/src/accountwindow.c
+++ b/sflphone-gtk/src/accountwindow.c
@@ -25,6 +25,21 @@
 /** Local variables */
 account_t * currentAccount;
 
+GtkDialog * dialog;
+GtkWidget * table;
+GtkWidget * label;
+GtkWidget * entryID;
+GtkWidget * entryName;
+GtkWidget * entryProtocol;
+GtkWidget * entryEnabled;
+GtkWidget * entryRegister;
+GtkWidget * entryFullName;
+GtkWidget * entryUserPart;
+GtkWidget * entryHostPart;
+GtkWidget * entryUsername;
+GtkWidget * entryPassword;
+
+
 /**
  * Delete an account
  */
@@ -35,23 +50,30 @@ delete_account( GtkWidget *widget, gpointer   data )
 }*/
 
 
+/* Signal to entryProtocol 'changed' */
+void
+change_protocol (account_t * currentAccount)
+{
+  gchar* proto = (gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(entryProtocol));
+  //g_print("Protocol changed\n");
+
+  // toggle sensitivity for: entryUserPart 
+  if (strcmp(proto, "SIP") == 0) {
+    gtk_widget_set_sensitive( GTK_WIDGET(entryUserPart),   TRUE);
+  }
+  else if (strcmp(proto, "IAX") == 0) {
+    gtk_widget_set_sensitive( GTK_WIDGET(entryUserPart),   FALSE);
+  }
+  else {
+    // Should not get here.
+    g_print("Unknown protocol: %s\n", proto);
+  }
+}
+
+
 void
 show_account_window (account_t * a)
 {
-  
-  GtkDialog * dialog;
-  GtkWidget * table;
-  GtkWidget * label;
-  GtkWidget * entryID;
-  GtkWidget * entryName;
-  GtkWidget * entryProtocol;
-  GtkWidget * entryEnabled;
-  GtkWidget * entryRegister;
-  GtkWidget * entryFullName;
-  GtkWidget * entryUserPart;
-  GtkWidget * entryHostPart;
-  GtkWidget * entryUsername;
-  GtkWidget * entryPassword;
   guint response;
   
   currentAccount = a;
@@ -137,7 +159,7 @@ show_account_window (account_t * a)
   gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5);
   entryProtocol = gtk_combo_box_new_text();
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryProtocol);
-  gtk_widget_set_sensitive( GTK_WIDGET(entryProtocol), TRUE); /* TODO When IAX is ok */
+  //gtk_widget_set_sensitive( GTK_WIDGET(entryProtocol), TRUE);
   gtk_combo_box_append_text(GTK_COMBO_BOX(entryProtocol), "SIP");
   gtk_combo_box_append_text(GTK_COMBO_BOX(entryProtocol), "IAX");
   if(strcmp(curAccountType, "SIP") == 0)
@@ -155,16 +177,18 @@ show_account_window (account_t * a)
     gtk_combo_box_set_active(GTK_COMBO_BOX(entryProtocol),2);  
   }
   gtk_table_attach ( GTK_TABLE( table ), entryProtocol, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+
+  /* Link signal 'changed' */
+  g_signal_connect (G_OBJECT (GTK_COMBO_BOX(entryProtocol)), "changed",
+		    G_CALLBACK (change_protocol),
+		    currentAccount);
   
   label = gtk_label_new_with_mnemonic ("_Full Name:");
   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);
   entryFullName = gtk_entry_new();
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryFullName);
-
-  // Load fullName
   gtk_entry_set_text(GTK_ENTRY(entryFullName), curFullName);
-
   gtk_table_attach ( GTK_TABLE( table ), entryFullName, 1, 2, 5, 6, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
   
   label = gtk_label_new_with_mnemonic ("_User part:");
@@ -172,10 +196,7 @@ show_account_window (account_t * a)
   gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5);
   entryUserPart = gtk_entry_new();
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryUserPart);
-
-  // Load userPart
   gtk_entry_set_text(GTK_ENTRY(entryUserPart), curUserPart);
-
   gtk_table_attach ( GTK_TABLE( table ), entryUserPart, 1, 2, 6, 7, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
   
   label = gtk_label_new_with_mnemonic ("_Host part:");
@@ -183,10 +204,7 @@ show_account_window (account_t * a)
   gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5);
   entryHostPart = gtk_entry_new();
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryHostPart);
-
-  // Load hostPart
   gtk_entry_set_text(GTK_ENTRY(entryHostPart), curHostPart);
-
   gtk_table_attach ( GTK_TABLE( table ), entryHostPart, 1, 2, 7, 8, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
   
   label = gtk_label_new_with_mnemonic ("U_sername:");
@@ -194,10 +212,7 @@ show_account_window (account_t * a)
   gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5);
   entryUsername = gtk_entry_new();
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryUsername);
-
-  // Load Username
   gtk_entry_set_text(GTK_ENTRY(entryUsername), curUsername);
-
   gtk_table_attach ( GTK_TABLE( table ), entryUsername, 1, 2, 8, 9, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
   
   label = gtk_label_new_with_mnemonic ("_Password:");
@@ -206,12 +221,21 @@ show_account_window (account_t * a)
   entryPassword = gtk_entry_new();
   gtk_entry_set_visibility(GTK_ENTRY(entryPassword), FALSE);
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryPassword);
-
-  // Load password
   gtk_entry_set_text(GTK_ENTRY(entryPassword), curPassword);
-
   gtk_table_attach ( GTK_TABLE( table ), entryPassword, 1, 2, 9, 10, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
   
+
+  // Toggle enabled/disabled widgets
+  if (strcmp(curAccountType, "SIP") == 0) {
+    //gtk_widget_set_sensitive( GTK_WIDGET(entryUserPart), TRUE);<    
+  }
+  else if (strcmp(curAccountType, "IAX") == 0) {
+    gtk_widget_set_sensitive( GTK_WIDGET(entryUserPart), FALSE);
+  }
+  else {
+    // Disable everything ! ouch!
+    // Shouldn't get there.
+  }
   
   
   gtk_box_pack_start (GTK_BOX (dialog->vbox), table, TRUE, TRUE, 0);
diff --git a/sflphone-gtk/src/configwindow.c b/sflphone-gtk/src/configwindow.c
index 793be9befcf0f8b632a462f7b9e4f9e51db534f3..9778b5ba7ffb52e6ef265eb5d34be290e46600cf 100644
--- a/sflphone-gtk/src/configwindow.c
+++ b/sflphone-gtk/src/configwindow.c
@@ -160,7 +160,7 @@ create_accounts_tab()
 	view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(account_store));
 
 	sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (view));
-  g_signal_connect (G_OBJECT (sel), "changed",
+	g_signal_connect (G_OBJECT (sel), "changed",
 			  G_CALLBACK (select_account),
 			  account_store);