diff --git a/libempathy-gtk/empathy-account-chooser.c b/libempathy-gtk/empathy-account-chooser.c
index f1c0ec6..3d5a97c 100644
--- a/libempathy-gtk/empathy-account-chooser.c
+++ b/libempathy-gtk/empathy-account-chooser.c
@@ -957,6 +957,29 @@ empathy_account_chooser_filter_is_connected (
 	callback (is_connected, callback_data);
 }
 
+void
+empathy_account_chooser_filter_supports_chatrooms (
+		TpAccount                                 *account,
+		EmpathyAccountChooserFilterResultCallback  callback,
+		gpointer                                   callback_data,
+		gpointer                                   user_data)
+{
+	gboolean enabled =
+		tp_account_get_connection_status (account, NULL)
+		== TP_CONNECTION_STATUS_CONNECTED;
+
+		if (enabled) {
+			TpConnection *connection;
+			TpCapabilities *capabilities;
+
+			connection = tp_account_get_connection (account);
+			capabilities = tp_connection_get_capabilities (connection);
+
+			enabled = tp_capabilities_supports_text_chatrooms (capabilities);
+		}
+		callback (enabled, callback_data);
+}
+
 gboolean
 empathy_account_chooser_is_ready (EmpathyAccountChooser *self)
 {
diff --git a/libempathy-gtk/empathy-account-chooser.h b/libempathy-gtk/empathy-account-chooser.h
index dfd372c..04e6230 100644
--- a/libempathy-gtk/empathy-account-chooser.h
+++ b/libempathy-gtk/empathy-account-chooser.h
@@ -91,6 +91,10 @@ void           empathy_account_chooser_filter_is_connected (TpAccount
 							   EmpathyAccountChooserFilterResultCallback callback,
 							   gpointer               callback_data,
 							   gpointer               user_data);
+void           empathy_account_chooser_filter_supports_chatrooms (TpAccount       *account,
+							   EmpathyAccountChooserFilterResultCallback callback,
+							   gpointer               callback_data,
+							   gpointer               user_data);
 gboolean       empathy_account_chooser_is_ready (EmpathyAccountChooser *chooser);
 
 G_END_DECLS
diff --git a/src/empathy-chatrooms-window.c b/src/empathy-chatrooms-window.c
index 35e3e8b..1b00548 100644
--- a/src/empathy-chatrooms-window.c
+++ b/src/empathy-chatrooms-window.c
@@ -139,7 +139,7 @@ empathy_chatrooms_window_show (GtkWindow *parent)
 	/* Account chooser for chat rooms */
 	window->account_chooser = empathy_account_chooser_new ();
 	empathy_account_chooser_set_filter (EMPATHY_ACCOUNT_CHOOSER (window->account_chooser),
-					    empathy_account_chooser_filter_is_connected,
+					    empathy_account_chooser_filter_supports_chatrooms,
 					    NULL);
 	g_object_set (window->account_chooser,
 		      "has-all-option", TRUE,
