diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
index a56c561801533a15b99113fdbc62568191bbc741..3964b0fc8f2625ba93eb15e3affd57d9d92746bc 100644
--- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
+++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
@@ -510,7 +510,12 @@ class QuasselViewModel : ViewModel() {
                           (!config.hideInactiveBuffers()) ||
                           it.bufferStatus != BufferStatus.OFFLINE ||
                           it.info.type.hasFlag(Buffer_Type.StatusBuffer)
-                        }.distinct()
+                        }.let {
+                          if (config.sortAlphabetically())
+                            it.sortedBy { it.info.bufferName }
+                              .sortedByDescending { it.hiddenState == BufferHiddenState.VISIBLE }
+                          else it
+                        }.distinctBy { it.info.bufferId }
                       )
                     }
                   }