diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt
index 866f108e1419f01837318a2fb91d7eb3e324fe29..7603078bf54ab0fcb28558158564b6aa014d1c78 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt
@@ -324,7 +324,14 @@ class MessageListFragment : ServiceBoundFragment() {
       this, Observer {
       if (it?.orNull() == ConnectionState.CONNECTED) {
         runInBackgroundDelayed(16) {
-          loadMore(initial = true)
+          viewModel.buffer { bufferId ->
+            // Try loading messages when switching to isEmpty buffer
+            if (database.message().bufferSize(bufferId) == 0) {
+              if (bufferId > 0 && bufferId != Int.MAX_VALUE) {
+                loadMore(initial = true)
+              }
+            }
+          }
         }
       }
     })