diff --git a/resources/qml/RoomList.qml b/resources/qml/RoomList.qml
index 9853260604747823d395faa7388e844f69c27c3f..576383e27c2ff3357f7b70c6c224444b9f5e1b27 100644
--- a/resources/qml/RoomList.qml
+++ b/resources/qml/RoomList.qml
@@ -33,8 +33,8 @@ Page {
 
         Connections {
             function onCurrentRoomChanged() {
-                roomlist.positionViewAtIndex(Rooms.roomidToIndex(Rooms.currentRoom.roomId), ListView.Contain);
-                console.log("Test" + Rooms.currentRoom.roomId + " " + Rooms.roomidToIndex(Rooms.currentRoom.roomId));
+                if (Rooms.currentRoom)
+                    roomlist.positionViewAtIndex(Rooms.roomidToIndex(Rooms.currentRoom.roomId), ListView.Contain);
             }
 
             target: Rooms
@@ -190,7 +190,12 @@ Page {
 
                 TapHandler {
                     margin: -Nheko.paddingSmall
-                    onSingleTapped: Rooms.setCurrentRoom(roomId)
+                    onSingleTapped: {
+                        if (!Rooms.currentRoom || Rooms.currentRoom.roomId !== roomId)
+                            Rooms.setCurrentRoom(roomId);
+                        else
+                            Rooms.resetCurrentRoom();
+                    }
                     onLongPressed: {
                         if (!isInvite)
                             roomContextMenu.show(roomId, tags);
diff --git a/resources/qml/TimelineView.qml b/resources/qml/TimelineView.qml
index 6fc9d51bba88c19346d34f4dd0ec1331d7c5dba6..5e99ee5ce9f126cd8f7debfea00509db0972e673 100644
--- a/resources/qml/TimelineView.qml
+++ b/resources/qml/TimelineView.qml
@@ -85,9 +85,13 @@ Item {
                         target: timelineView
                     }
 
-                    MessageView {
+                    Loader {
+                        active: room || roomPreview
                         Layout.fillWidth: true
-                        implicitHeight: msgView.height - typingIndicator.height
+                        sourceComponent: MessageView {
+                            implicitHeight: msgView.height - typingIndicator.height
+                        }
+
                     }
 
                     Loader {