diff --git a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
index 93f67ba4922115cf3e703771ab3b8122b7af01f5..70419e7a9ee23a5b0d3fc31d73ec40c69fc3be0f 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
@@ -270,7 +270,7 @@ class QuasselService : DaggerLifecycleService(),
       }
     }
 
-    override fun sessionManager() = service!!.sessionManager
+    override fun sessionManager() = service?.sessionManager
 
     override fun connectUnlessConnected(address: SocketAddress, user: String, pass: String,
                                         reconnect: Boolean) {
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt
index 5966688b4eddacbd0231ac802774cb78c8001b21..e101073fb94fbb067933ca681b5b5054a12eb8c3 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt
@@ -85,13 +85,13 @@ abstract class ServiceBoundSetupActivity :
 
   protected fun runInBackground(f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backend(f)
+      it.sessionManager()?.handlerService?.backend(f)
     }
   }
 
   protected fun runInBackgroundDelayed(delayMillis: Long, f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backendDelayed(delayMillis, f)
+      it.sessionManager()?.handlerService?.backendDelayed(delayMillis, f)
     }
   }
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSlideFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSlideFragment.kt
index f383b42d90d2db8acdc774a3aa50ce2a4a163fb2..90e4e02697d97d9f62fb6d458e4c612702618a35 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSlideFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSlideFragment.kt
@@ -39,13 +39,13 @@ abstract class ServiceBoundSlideFragment : SlideFragment() {
 
   protected fun runInBackground(f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backend(f)
+      it.sessionManager()?.handlerService?.backend(f)
     }
   }
 
   protected fun runInBackgroundDelayed(delayMillis: Long, f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backendDelayed(delayMillis, f)
+      it.sessionManager()?.handlerService?.backendDelayed(delayMillis, f)
     }
   }
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt
index a2ac75c98745b98bff06b4462bee8c23492c03b4..f27c5d3b16919bcd6aec03981e1e8366dfc854e2 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt
@@ -58,13 +58,13 @@ abstract class ServiceBoundActivity :
 
   protected fun runInBackground(f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backend(f)
+      it.sessionManager()?.handlerService?.backend(f)
     }
   }
 
   protected fun runInBackgroundDelayed(delayMillis: Long, f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backendDelayed(delayMillis, f)
+      it.sessionManager()?.handlerService?.backendDelayed(delayMillis, f)
     }
   }
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt
index c0c0074a3a8f697a6cd84102bee350526f199c88..019f7a7d38f3264cd5a9eb959685a59154cf07c6 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt
@@ -39,13 +39,13 @@ abstract class ServiceBoundFragment : DaggerFragment() {
 
   protected fun runInBackground(f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backend(f)
+      it.sessionManager()?.handlerService?.backend(f)
     }
   }
 
   protected fun runInBackgroundDelayed(delayMillis: Long, f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backendDelayed(delayMillis, f)
+      it.sessionManager()?.handlerService?.backendDelayed(delayMillis, f)
     }
   }
 
diff --git a/lib/src/main/java/de/kuschku/libquassel/session/Backend.kt b/lib/src/main/java/de/kuschku/libquassel/session/Backend.kt
index abf869f3d88de3878a0187439d1e7f8145b40e9b..eaea5680ee74f75bdf82d9711798167dd506dc38 100644
--- a/lib/src/main/java/de/kuschku/libquassel/session/Backend.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/session/Backend.kt
@@ -26,7 +26,7 @@ interface Backend {
   fun connect(address: SocketAddress, user: String, pass: String, reconnect: Boolean)
   fun reconnect()
   fun disconnect(forever: Boolean = false)
-  fun sessionManager(): SessionManager
+  fun sessionManager(): SessionManager?
   fun updateUserDataAndLogin(user: String, pass: String)
   fun requestConnectNewNetwork()
 }
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 04e11b532b79641e79f86877aa481a689ebed6de..b69690d558c92203eca5f81531b481ffce05beb9 100644
--- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
+++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
@@ -81,7 +81,7 @@ class QuasselViewModel : ViewModel() {
   }
 
   val backend = backendWrapper.switchMap { it }
-  val sessionManager = backend.mapMap(Backend::sessionManager)
+  val sessionManager = backend.mapMapNullable(Backend::sessionManager)
   val session = sessionManager.mapSwitchMap(SessionManager::session)
   val rpcHandler = session.mapMapNullable(ISession::rpcHandler)
   val features = sessionManager.mapSwitchMap { manager ->