diff --git a/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt b/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt
index fd70f1edb879c70b2ba65e5a3f279e67e030dbd8..8d42465c81b8a637dfd78017a0e4111ca729292d 100644
--- a/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt
@@ -229,6 +229,8 @@ class CoreConnection(
       }
       channel?.close()
     } catch (e: Throwable) {
+      val closed = state.value == ConnectionState.CLOSED
+
       var cause: Throwable? = e
       var exception: QuasselSecurityException?
       do {
@@ -239,10 +241,12 @@ class CoreConnection(
         close()
         securityExceptionCallback(exception)
       } else {
-        log(WARN, TAG, "Error encountered in connection", e)
-        log(WARN, TAG, "Last sent message: ${MessageRunnable.lastSent.get()}")
+        if (!closed) {
+          log(WARN, TAG, "Error encountered in connection", e)
+          log(WARN, TAG, "Last sent message: ${MessageRunnable.lastSent.get()}")
+          exceptionCallback(e)
+        }
         close()
-        exceptionCallback(e)
       }
     }
   }