diff --git a/app/src/main/java/de/kuschku/quasseldroid/service/AndroidHeartBeatRunner.kt b/app/src/main/java/de/kuschku/quasseldroid/service/AndroidHeartBeatRunner.kt
index 21ba09a302b1052d8c938a99b3a6bdb3c5f022e8..bb44fb01c39d2191ef19153b7830bda34fbed1a2 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/service/AndroidHeartBeatRunner.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/service/AndroidHeartBeatRunner.kt
@@ -15,16 +15,18 @@ class AndroidHeartBeatRunner(
 ) : HeartBeatRunner {
   private var running = true
   private var lastHeartBeatReply: Instant = Instant.now()
+  private var lastHeartBeatSend: Instant = Instant.now()
 
   override fun start() {
     if (running) {
-      val now = Instant.now()
-      val duration = Duration.between(lastHeartBeatReply, now).toMillis()
+      val duration = Duration.between(lastHeartBeatReply, lastHeartBeatSend).toMillis()
       if (duration > TIMEOUT) {
         log(INFO, "Heartbeat", "Ping Timeout: Last Response ${duration}ms ago")
         session.close()
       } else {
         log(INFO, "Heartbeat", "Sending Heartbeat")
+        val now = Instant.now()
+        lastHeartBeatSend = now
         session.dispatch(SignalProxyMessage.HeartBeat(now))
       }
       handler.postDelayed(::start, DELAY)
@@ -40,7 +42,7 @@ class AndroidHeartBeatRunner(
   }
 
   companion object {
-    const val TIMEOUT = 120_000L
+    const val TIMEOUT = 90_000L
     const val DELAY = 30_000L
   }
 }