diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c
index 2d9357d..c8e3e1f 100644
--- a/libempathy-gtk/empathy-chat.c
+++ b/libempathy-gtk/empathy-chat.c
@@ -695,13 +695,23 @@ static void
 chat_command_join (EmpathyChat *chat,
 		   GStrv        strv)
 {
+	int i = 0;
 	EmpathyChatPriv *priv = GET_PRIV (chat);
-	TpConnection *connection;
 
-	connection = empathy_tp_chat_get_connection (priv->tp_chat);
-	empathy_dispatcher_join_muc (connection, strv[1],
-				     chat_command_join_cb,
-				     chat);
+	GStrv rooms = g_strsplit_set(strv[1], ", ", -1);
+
+	while (rooms[i] != NULL) {
+		// ignore empty strings
+		if (rooms[i][0] != '\0') {
+			TpConnection *connection;
+
+			connection = empathy_tp_chat_get_connection (priv->tp_chat);
+			empathy_dispatcher_join_muc (connection, rooms[i],
+						     chat_command_join_cb,
+						     chat);
+		}
+		i++;
+	}
 }
 
 static void
