Index: libempathy-gtk/empathy-accounts-dialog.c
===================================================================
--- libempathy-gtk/empathy-accounts-dialog.c	(révision 224)
+++ libempathy-gtk/empathy-accounts-dialog.c	(copie de travail)
@@ -210,10 +210,12 @@
 	GtkWidget   *image;
 	const gchar *stock_id;
 	const gchar *label;
+	gboolean     sensitive;
 
 	account = accounts_dialog_model_get_selected (dialog);
 	
-	gtk_widget_set_sensitive (dialog->button_connect, account != NULL);
+	sensitive = (account != NULL && mc_account_is_complete (account));
+	gtk_widget_set_sensitive (dialog->button_connect, sensitive);
 
 	if (account && mc_account_is_enabled (account)) {
 		label = _("Disable");
@@ -631,6 +633,15 @@
 	g_object_unref (account);
 }
 
+static void
+accounts_dialog_account_changed_cb (McAccountMonitor      *monitor,
+				    gchar                 *unique_name,
+				    EmpathyAccountsDialog *dialog)
+{
+	empathy_debug (DEBUG_DOMAIN, "Account changed: %s", unique_name);
+	accounts_dialog_update_connect_button (dialog);
+}
+
 static gboolean
 accounts_dialog_row_changed_foreach (GtkTreeModel *model,
 				     GtkTreePath  *path,
@@ -1023,6 +1034,9 @@
 	g_signal_connect (dialog->monitor, "account-deleted",
 			  G_CALLBACK (accounts_dialog_account_removed_cb),
 			  dialog);
+	g_signal_connect (dialog->monitor, "account-changed",
+			  G_CALLBACK (accounts_dialog_account_changed_cb),
+			  dialog);
 	dbus_g_proxy_connect_signal (DBUS_G_PROXY (dialog->mc), "AccountStatusChanged",
 				     G_CALLBACK (accounts_dialog_status_changed_cb),
 				     dialog, NULL);
