diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
index 74c49ad3848ea3d8dfc429d41b01cfba88e5cd86..09fdfcc61701708278b833f0a0be8799b2df8511 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
@@ -176,22 +176,25 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
             val info = session.bufferSyncer?.find(
               bufferName = channel,
               networkId = networkId,
-              type = Buffer_Type.of(Buffer_Type.QueryBuffer)
+              type = Buffer_Type.of(Buffer_Type.ChannelBuffer)
             )
 
             if (info != null) {
-              ChatActivity.launch(this, bufferId = info.bufferId)
+              viewModel.buffer.onNext(info.bufferId)
+              viewModel.bufferOpened.onNext(Unit)
             } else {
-
               viewModel.allBuffers.map {
                 listOfNotNull(it.find {
-                  it.networkId == networkId && it.bufferName == channel
+                  it.networkId == networkId &&
+                  it.bufferName == channel &&
+                  it.type.hasFlag(Buffer_Type.ChannelBuffer)
                 })
               }.filter {
                 it.isNotEmpty()
               }.firstElement().toLiveData().observe(this, Observer {
                 it?.firstOrNull()?.let { info ->
-                  ChatActivity.launch(this, bufferId = info.bufferId)
+                  viewModel.buffer.onNext(info.bufferId)
+                  viewModel.bufferOpened.onNext(Unit)
                 }
               })