diff --git a/libempathy-gtk/gossip-account-widget-jabber.c b/libempathy-gtk/gossip-account-widget-jabber.c
index 2efd535..66e9503 100644
--- a/libempathy-gtk/gossip-account-widget-jabber.c
+++ b/libempathy-gtk/gossip-account-widget-jabber.c
@@ -37,6 +37,9 @@
 
 #include "gossip-account-widget-jabber.h"
 #include "gossip-ui-utils.h"
+#include "gossip-accounts-dialog.h"
 
 #define PORT_WITHOUT_SSL 5222
 #define PORT_WITH_SSL 5223
@@ -118,6 +121,11 @@ account_widget_jabber_entry_focus_cb (GtkWidget                 *widget,
 		}
 #endif
 	}
+	if (widget == settings->entry_password ||
+	    widget == settings->entry_id) 
+		gossip_accounts_dialog_update_connect_button_sensitive(settings->account);
 
 	return FALSE;
 }
diff --git a/libempathy-gtk/gossip-accounts-dialog.c b/libempathy-gtk/gossip-accounts-dialog.c
index ac0b2a6..13c291d 100644
--- a/libempathy-gtk/gossip-accounts-dialog.c
+++ b/libempathy-gtk/gossip-accounts-dialog.c
@@ -228,6 +228,11 @@ accounts_dialog_update_connect_button (GossipAccountsDialog *dialog)
 	account = accounts_dialog_model_get_selected (dialog);
 	
 	gtk_widget_set_sensitive (dialog->button_connect, account != NULL);
+	gossip_accounts_dialog_update_connect_button_sensitive (account);
 
 	if (account && mc_account_is_enabled (account)) {
 		label = _("Disable");
@@ -1173,5 +1173,17 @@ gossip_accounts_dialog_is_running(void)
 	else
 		return FALSE;
 }
+
+void
+gossip_accounts_dialog_update_connect_button_sensitive (McAccount *account)
+{
+	
+	if (!accounts_dialog)
+		return;
+	if (account == NULL)
+		return gtk_widget_set_sensitive (accounts_dialog->button_connect, FALSE);
+	return gtk_widget_set_sensitive (accounts_dialog->button_connect, 
+						mc_account_is_complete(account));
+}
 #endif
 
diff --git a/libempathy-gtk/gossip-accounts-dialog.h b/libempathy-gtk/gossip-accounts-dialog.h
index 06ec883..7016e9c 100644
--- a/libempathy-gtk/gossip-accounts-dialog.h
+++ b/libempathy-gtk/gossip-accounts-dialog.h
@@ -25,12 +25,14 @@
 #define __GOSSIP_ACCOUNTS_DIALOG_H__
 
 #include <gtk/gtkwidget.h>
+#include <libmissioncontrol/mc-account.h>
 
 G_BEGIN_DECLS
 
 GtkWidget *gossip_accounts_dialog_show (GtkWindow *parent);
 #ifdef USE_HILDON
 gboolean   gossip_accounts_dialog_is_running(void);
+void       gossip_accounts_dialog_update_connect_button_sensitive(McAccount *account);
 #endif
 
 G_END_DECLS
