diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.kt
index b1394e95cf0597d2df9c4e1dc5aebb81e26e4225..7ef65d2cc17c14c6caf5061b0ed3c4bb1bbe9b50 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.kt
@@ -83,6 +83,8 @@ class QuasselService : LifecycleService() {
     override fun disconnect(forever: Boolean) {
       handler.post {
         backendImplementation.disconnect(forever)
+        if (forever)
+          stopSelf()
       }
     }
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt
index 9b40316e0e8eed4a658023e8512ccbdd2589bec8..5493cc2beab9b2ade206eaa58585cee7192a9c90 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt
@@ -144,7 +144,6 @@ class ChatActivity : ServiceBoundActivity() {
           putBoolean(Keys.Status.reconnect, false)
         }
         backend.value?.disconnect(true)
-        stopService()
         setResult(Activity.RESULT_OK)
         finish()
       }
diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/service/BackendServiceConnection.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/util/service/BackendServiceConnection.kt
index 6dff17f6a0658cc7a35a67884aae5800da4913fb..b703da406ef63a7e88e84ce26da98a28866fc292 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/util/service/BackendServiceConnection.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/service/BackendServiceConnection.kt
@@ -10,13 +10,11 @@ import de.kuschku.libquassel.session.Backend
 import de.kuschku.quasseldroid_ng.service.QuasselService
 
 class BackendServiceConnection : ServiceConnection {
-  var bound = false
   val backend = MutableLiveData<Backend?>()
 
   var context: Context? = null
 
   override fun onServiceDisconnected(component: ComponentName?) {
-    bound = false
     when (component) {
       ComponentName(context, QuasselService::class.java) -> {
         backend.value = null
@@ -25,7 +23,6 @@ class BackendServiceConnection : ServiceConnection {
   }
 
   override fun onServiceConnected(component: ComponentName?, binder: IBinder?) {
-    bound = true
     when (component) {
       ComponentName(context, QuasselService::class.java) ->
         if (binder is QuasselService.QuasselBinder) {
@@ -47,6 +44,6 @@ class BackendServiceConnection : ServiceConnection {
   }
 
   fun unbind() {
-    if (bound) context?.unbindService(this)
+    context?.unbindService(this)
   }
 }
\ No newline at end of file