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 53e24ff5253f5872c66ac61659f9323bae18cb10..29aaabcee5e655d8c21be929bfb175620686b015 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
@@ -538,18 +538,22 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
   override fun onSaveInstanceState(outState: Bundle?) {
     super.onSaveInstanceState(outState)
     outState?.putInt("OPEN_BUFFER", viewModel.buffer.value ?: -1)
+    outState?.putInt("OPEN_BUFFERVIEWCONFIG", viewModel.bufferViewConfigId.value ?: -1)
   }
 
   override fun onSaveInstanceState(outState: Bundle?, outPersistentState: PersistableBundle?) {
     super.onSaveInstanceState(outState, outPersistentState)
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
       outPersistentState?.putInt("OPEN_BUFFER", viewModel.buffer.value ?: -1)
+      outPersistentState?.putInt("OPEN_BUFFERVIEWCONFIG", viewModel.bufferViewConfigId.value ?: -1)
     }
   }
 
   override fun onRestoreInstanceState(savedInstanceState: Bundle?) {
     super.onRestoreInstanceState(savedInstanceState)
     viewModel.buffer.onNext(savedInstanceState?.getInt("OPEN_BUFFER", -1) ?: -1)
+    viewModel.bufferViewConfigId.onNext(savedInstanceState?.getInt("OPEN_BUFFERVIEWCONFIG", -1)
+                                        ?: -1)
   }
 
   @TargetApi(Build.VERSION_CODES.LOLLIPOP)
@@ -557,8 +561,16 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
                                       persistentState: PersistableBundle?) {
     super.onRestoreInstanceState(savedInstanceState, persistentState)
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-      val fallback = persistentState?.getInt("OPEN_BUFFER", -1) ?: -1
-      viewModel.buffer.onNext(savedInstanceState?.getInt("OPEN_BUFFER", fallback) ?: fallback)
+      val fallbackBuffer = persistentState?.getInt("OPEN_BUFFER", -1) ?: -1
+      viewModel.buffer.onNext(
+        savedInstanceState?.getInt("OPEN_BUFFER", fallbackBuffer)
+        ?: fallbackBuffer
+      )
+      val fallbackBufferViewConfigId = persistentState?.getInt("OPEN_BUFFERVIEWCONFIG", -1) ?: -1
+      viewModel.bufferViewConfigId.onNext(
+        savedInstanceState?.getInt("OPEN_BUFFERVIEWCONFIG", fallbackBufferViewConfigId)
+        ?: fallbackBufferViewConfigId
+      )
     }
   }
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigAdapter.kt
index 84022e8e64b695cc695e05abfa78a57c4b0adddc..c21c3b88408a4623d0fb86b6399e7aa48bfaae6b 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigAdapter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigAdapter.kt
@@ -42,6 +42,8 @@ class BufferViewConfigAdapter :
     notifyDataSetChanged()
   }
 
+  fun indexOf(id: Int) = data.indexOfFirst { it.bufferViewId() == id }
+
   override fun isEmpty() = data.isEmpty()
 
   override fun onBindViewHolder(holder: BufferViewConfigViewHolder, position: Int) =
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 6c10d9f337089abec65e705503307f62478420cf..c42ac4d621207d7e0ff39cc5bab66cede14955cf 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
@@ -207,23 +207,31 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
     val view = inflater.inflate(R.layout.fragment_chat_list, container, false)
     ButterKnife.bind(this, view)
 
+    var hasSetBufferViewConfigId = false
     val adapter = BufferViewConfigAdapter()
     viewModel.bufferViewConfigs.switchMap {
       combineLatest(it.map(BufferViewConfig::liveUpdates))
     }.toLiveData().observe(this, Observer {
       if (it != null) {
         adapter.submitList(it)
+        if (!hasSetBufferViewConfigId) {
+          chatListSpinner.setSelection(adapter.indexOf(viewModel.bufferViewConfigId.value))
+          hasSetBufferViewConfigId = true
+        }
       }
     })
 
     chatListSpinner.adapter = adapter
     chatListSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
-      override fun onNothingSelected(p0: AdapterView<*>?) {
-        viewModel.bufferViewConfigId.onNext(-1)
+      override fun onNothingSelected(adapter: AdapterView<*>?) {
+        if (hasSetBufferViewConfigId)
+          viewModel.bufferViewConfigId.onNext(-1)
       }
 
-      override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
-        viewModel.bufferViewConfigId.onNext(adapter.getItem(p2)?.bufferViewId() ?: -1)
+      override fun onItemSelected(adapter: AdapterView<*>?, element: View?, position: Int,
+                                  id: Long) {
+        if (hasSetBufferViewConfigId)
+          viewModel.bufferViewConfigId.onNext(id.toInt())
       }
     }
 
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 2a2b52f5db451f8745ba99058b988c4afb51699a..faaeeae8d95aa220d0f3d844b583150e9dfede37 100644
--- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
+++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
@@ -32,6 +32,8 @@ import de.kuschku.libquassel.session.Backend
 import de.kuschku.libquassel.session.ISession
 import de.kuschku.libquassel.session.SessionManager
 import de.kuschku.libquassel.util.Optional
+import de.kuschku.libquassel.util.compatibility.LoggingHandler
+import de.kuschku.libquassel.util.compatibility.LoggingHandler.Companion.log
 import de.kuschku.libquassel.util.flag.and
 import de.kuschku.libquassel.util.flag.hasFlag
 import de.kuschku.libquassel.util.helpers.*
@@ -45,6 +47,10 @@ import io.reactivex.subjects.BehaviorSubject
 import java.util.concurrent.TimeUnit
 
 class QuasselViewModel : ViewModel() {
+  init {
+    log(LoggingHandler.LogLevel.ERROR, "DEBUG", "QuasselViewModel created! ${hashCode()}")
+  }
+
   val backendWrapper = BehaviorSubject.createDefault(Observable.empty<Optional<Backend>>())
 
   val selectedMessages = BehaviorSubject.createDefault(emptyMap<MsgId, FormattedMessage>())