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 a3c369327bdf5f518d575a6ce426ddc6280ddaf1..bd19969fcd7610e133e8f0f6f400e738c195ea86 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
@@ -740,6 +740,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
     if (!startedSelection) {
       startActivityForResult(AccountSelectionActivity.intent(this), REQUEST_SELECT_ACCOUNT)
       startedSelection = true
+      viewModel.resetAccount()
     }
   }
 
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 a16314f81d0309c1cc6a9ee79b5305dd73d2cd8d..7c4dbf0a9cf9d8eba8e1791a30b3cb4e180e5986 100644
--- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
+++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
@@ -46,6 +46,14 @@ import io.reactivex.subjects.PublishSubject
 import java.util.concurrent.TimeUnit
 
 class QuasselViewModel : ViewModel() {
+  fun resetAccount() {
+    buffer.onNext(Int.MAX_VALUE)
+    bufferViewConfigId.onNext(Int.MAX_VALUE)
+    selectedMessages.onNext(emptyMap())
+    expandedMessages.onNext(emptySet())
+    recentlySentMessages.onNext(emptyList())
+  }
+
   val backendWrapper = BehaviorSubject.createDefault(Observable.empty<Optional<Backend>>())
 
   val selectedMessages = BehaviorSubject.createDefault(emptyMap<MsgId, FormattedMessage>())