diff --git a/src/CommunitiesList.cpp b/src/CommunitiesList.cpp
index 77e6368a0d32656823a66127c42eb1dc191467dd..8bc71d9129b4a55dfeacb2f2c9b6bddd28272fb0 100644
--- a/src/CommunitiesList.cpp
+++ b/src/CommunitiesList.cpp
@@ -65,6 +65,7 @@ CommunitiesList::setCommunities(const mtx::responses::JoinedGroups &response)
                 addCommunity(group);
 
         communities_["world"]->setPressedState(true);
+        selectedCommunity_ = "world";
         emit communityChanged("world");
         sortEntries();
 }
@@ -74,6 +75,7 @@ CommunitiesList::syncTags(const std::map<QString, RoomInfo> &info)
 {
         for (const auto &room : info)
                 setTagsForRoom(room.first, room.second.tags);
+        emit communityChanged(selectedCommunity_);
         sortEntries();
 }
 
@@ -231,6 +233,7 @@ CommunitiesList::highlightSelectedCommunity(const QString &community_id)
                 return;
         }
 
+        selectedCommunity_ = community_id;
         emit communityChanged(community_id);
 
         for (const auto &community : communities_) {
diff --git a/src/CommunitiesList.h b/src/CommunitiesList.h
index d62beb8d0e198d493046d2b6a4967e51f515d653..5113e7edc83b0f7819611737419ae4cd6ca9c4a2 100644
--- a/src/CommunitiesList.h
+++ b/src/CommunitiesList.h
@@ -53,6 +53,7 @@ private:
                 return communities_.find(id) != communities_.end();
         }
 
+        QString selectedCommunity_;
         QVBoxLayout *topLayout_;
         QVBoxLayout *contentsLayout_;
         QScrollArea *scrollArea_;