diff --git a/libempathy-gtk/empathy-account-chooser.c b/libempathy-gtk/empathy-account-chooser.c
index f1c0ec6..e47a3e2 100644
--- a/libempathy-gtk/empathy-account-chooser.c
+++ b/libempathy-gtk/empathy-account-chooser.c
@@ -954,6 +954,12 @@ empathy_account_chooser_filter_is_connected (
 	gboolean is_connected =
 		tp_account_get_connection_status (account, NULL)
 		== TP_CONNECTION_STATUS_CONNECTED;
+	if (is_connected && user_data != NULL) {
+		if (GPOINTER_TO_UINT (user_data) == EMPATHY_ACCOUNT_CHOOSER_ONLY_IRC
+			&& g_strcmp0 (tp_account_get_icon_name (account), "im-irc") != 0) {
+			is_connected = !is_connected;
+		}
+	}
 	callback (is_connected, callback_data);
 }
 
diff --git a/libempathy-gtk/empathy-account-chooser.h b/libempathy-gtk/empathy-account-chooser.h
index dfd372c..c94ea75 100644
--- a/libempathy-gtk/empathy-account-chooser.h
+++ b/libempathy-gtk/empathy-account-chooser.h
@@ -74,6 +74,10 @@ struct _EmpathyAccountChooserClass {
 	GtkComboBoxClass parent_class;
 };
 
+typedef enum {
+    EMPATHY_ACCOUNT_CHOOSER_ONLY_IRC = 1
+} EmpathyAccountChooserAccountCategories;
+
 GType          empathy_account_chooser_get_type           (void) G_GNUC_CONST;
 GtkWidget *    empathy_account_chooser_new                (void);
 TpAccount *    empathy_account_chooser_dup_account        (EmpathyAccountChooser *chooser);
diff --git a/src/empathy-chatrooms-window.c b/src/empathy-chatrooms-window.c
index 35e3e8b..687b9f7 100644
--- a/src/empathy-chatrooms-window.c
+++ b/src/empathy-chatrooms-window.c
@@ -140,7 +140,7 @@ empathy_chatrooms_window_show (GtkWindow *parent)
 	window->account_chooser = empathy_account_chooser_new ();
 	empathy_account_chooser_set_filter (EMPATHY_ACCOUNT_CHOOSER (window->account_chooser),
 					    empathy_account_chooser_filter_is_connected,
-					    NULL);
+					    GUINT_TO_POINTER (EMPATHY_ACCOUNT_CHOOSER_ONLY_IRC));// NULL);
 	g_object_set (window->account_chooser,
 		      "has-all-option", TRUE,
 		      NULL);
