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 9979f75e85cddcd67082093aced7f72f2b9cd15d..c3458a472b44bc76c949b4fae2c34030c8507500 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
@@ -604,6 +604,10 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
   }
 
   override fun onStart() {
+    val buffers = viewModel.bufferList.value
+    val bufferId = viewModel.buffer.value
+    val bufferViewConfigId = viewModel.bufferViewConfigId.value
+    val bufferViewConfig = viewModel.bufferViewConfig.value
     if (Settings.autoComplete(this) != autoCompleteSettings) {
       recreate()
     }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt
index 513990d250bc471c05da76c718db2be56adec8b0..ddbdbdbb58e8477fe3a31a33449d3d0f39af931e 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt
@@ -231,6 +231,7 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
       }
       if (!hasSetBufferViewConfigId) {
         chatListSpinner.setSelection(adapter.indexOf(viewModel.bufferViewConfigId.value))
+        viewModel.bufferViewConfigId.onNext(chatListSpinner.selectedItemId.toInt())
         hasSetBufferViewConfigId = true
       }
     }
@@ -446,6 +447,11 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
       chatListSpinner.onRestoreInstanceState(getParcelable(KEY_STATE_SPINNER))
     }
 
+    viewModel.stateReset.toLiveData().observe(this, Observer {
+      hasSetBufferViewConfigId = false
+      hasRestoredSpinnerState = false
+    })
+
     return view
   }
 
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 6fd66581504f499956ceb7fd072f38a870e38517..884213f0c0eb78064e06290db3ed98932507d2e0 100644
--- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
+++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
@@ -47,13 +47,16 @@ import java.util.concurrent.TimeUnit
 
 class QuasselViewModel : ViewModel() {
   fun resetAccount() {
+    stateReset.onNext(Unit)
     buffer.onNext(Int.MAX_VALUE)
-    bufferViewConfigId.onNext(Int.MAX_VALUE)
+    bufferViewConfigId.onNext(-1)
     selectedMessages.onNext(emptyMap())
     expandedMessages.onNext(emptySet())
     recentlySentMessages.onNext(emptyList())
   }
 
+  val stateReset = PublishSubject.create<Unit>()
+
   val backendWrapper = BehaviorSubject.createDefault(Observable.empty<Optional<Backend>>())
 
   val selectedMessages = BehaviorSubject.createDefault(emptyMap<MsgId, FormattedMessage>())
@@ -69,7 +72,7 @@ class QuasselViewModel : ViewModel() {
   val buffer = BehaviorSubject.createDefault(Int.MAX_VALUE)
   val bufferOpened = PublishSubject.create<Unit>()
 
-  val bufferViewConfigId = BehaviorSubject.createDefault(Int.MAX_VALUE)
+  val bufferViewConfigId = BehaviorSubject.createDefault(-1)
 
   val MAX_RECENT_MESSAGES = 20
   val recentlySentMessages = BehaviorSubject.createDefault(emptyList<CharSequence>())
@@ -321,7 +324,7 @@ class QuasselViewModel : ViewModel() {
       }
     }
 
-  val bufferList: Observable<Pair<BufferViewConfig?, List<BufferProps>>?> =
+  val bufferList: Observable<Pair<BufferViewConfig?, List<BufferProps>>> =
     combineLatest(session, bufferViewConfig, showHidden)
       .switchMap { (sessionOptional, configOptional, showHiddenRaw) ->
         val session = sessionOptional.orNull()