diff --git a/lib/src/main/java/de/kuschku/libquassel/util/helpers/ObservableHelper.kt b/lib/src/main/java/de/kuschku/libquassel/util/helpers/ObservableHelper.kt
index 90facf688a16091b7ceb37602854030f387c7f7c..981b13430924e3539f49d5aa0180b09d8bdf7992 100644
--- a/lib/src/main/java/de/kuschku/libquassel/util/helpers/ObservableHelper.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/util/helpers/ObservableHelper.kt
@@ -1,5 +1,6 @@
 package de.kuschku.libquassel.util.helpers
 
+import de.kuschku.libquassel.util.Optional
 import io.reactivex.Observable
 
 fun <T> Observable<T>.or(default: T): T = try {
@@ -9,4 +10,4 @@ fun <T> Observable<T>.or(default: T): T = try {
 }
 
 val <T> Observable<T>.value
-  get() = this.blockingLatest().firstOrNull()
\ No newline at end of file
+  get() = this.map { Optional.of(it) }.blockingMostRecent(Optional.empty()).firstOrNull()?.orNull()
\ No newline at end of file
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 1eb9a5b0ce6f702d6b1062a2b52a25c2dd87971d..718d242dcce3d574f01ccf49ddba2dba170e723a 100644
--- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
+++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
@@ -16,7 +16,6 @@ import de.kuschku.quasseldroid.util.helper.combineLatest
 import de.kuschku.quasseldroid.util.helper.toLiveData
 import de.kuschku.quasseldroid.viewmodel.data.*
 import io.reactivex.Observable
-import io.reactivex.functions.Function
 import io.reactivex.subjects.BehaviorSubject
 import java.util.concurrent.TimeUnit
 
@@ -55,9 +54,9 @@ class QuasselViewModel : ViewModel() {
     .map(Optional<BufferViewManager>::get)
 
   val bufferViewConfig = bufferViewManager.switchMap { manager ->
-    bufferViewConfigId.map(Function<Int, Optional<BufferViewConfig>> { id ->
+    bufferViewConfigId.map { id ->
       Optional.ofNullable(manager.bufferViewConfig(id))
-    })
+    }
   }
 
   val errors = session.switchMap(ISession::error)