diff --git a/src/timeline/RoomlistModel.cpp b/src/timeline/RoomlistModel.cpp
index 1c1057e1b8923aa5cbfd56c8c8fc9bc00de027ae..cb8006990d7ba53c748f19c25c11a517291d2139 100644
--- a/src/timeline/RoomlistModel.cpp
+++ b/src/timeline/RoomlistModel.cpp
@@ -602,6 +602,10 @@ RoomlistModel::leave(QString roomid)
 void
 RoomlistModel::setCurrentRoom(QString roomid)
 {
+        if ((currentRoom_ && currentRoom_->roomId() == roomid) ||
+            (currentRoomPreview_ && currentRoomPreview_->roomid() == roomid))
+                return;
+
         nhlog::ui()->debug("Trying to switch to: {}", roomid.toStdString());
         if (models.contains(roomid)) {
                 currentRoom_ = models.value(roomid);