diff --git a/src/RoomList.cpp b/src/RoomList.cpp
index a9ce957abefe8fe5e51b06efdbe957bd1d6c4494..13a4fa67ba142c7afd781937ba884787bbf0298c 100644
--- a/src/RoomList.cpp
+++ b/src/RoomList.cpp
@@ -65,6 +65,10 @@ RoomList::RoomList(QSharedPointer<UserSettings> userSettings, QWidget *parent)
         topLayout_->addWidget(scrollArea_);
 
         connect(this, &RoomList::updateRoomAvatarCb, this, &RoomList::updateRoomAvatar);
+        connect(userSettings.get(),
+                &UserSettings::roomSortingChanged,
+                this,
+                &RoomList::sortRoomsByLastMessage);
 }
 
 void
diff --git a/src/UserSettingsPage.h b/src/UserSettingsPage.h
index a1bc4ffc69f2082f05b5e9713e7b0cad39e5483f..d47ceb83d09f0b3523b00118c1b5aa4c5d7474a1 100644
--- a/src/UserSettingsPage.h
+++ b/src/UserSettingsPage.h
@@ -87,7 +87,11 @@ public:
                 save();
         }
 
-        void setIgnoreMinorEvents(bool state) { ignoreMinorEvents_ = state; }
+        void setIgnoreMinorEvents(bool state)
+        {
+                ignoreMinorEvents_ = state;
+                emit roomSortingChanged();
+        }
 
         void setButtonsInTimeline(bool state)
         {
@@ -124,6 +128,7 @@ public:
 
 signals:
         void groupViewStateChanged(bool state);
+        void roomSortingChanged();
 
 private:
         // Default to system theme if QT_QPA_PLATFORMTHEME var is set.