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 708803bd9531e345ddc75af240c85e90047bb79e..bb383d54da00f5c1d434669061cf84c0d300202d 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
@@ -119,7 +119,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
         val end = Math.min(
           s.length, previous.range.start + previous.completion.name.length + suffix.length
         )
-        val sequence = s.subSequence(previous.range.start, end)
+        val sequence = s.substring(previous.range.start, end)
         if (sequence == previous.completion.name + suffix) {
           previous.originalWord to (previous.range.start until end)
         } else {
@@ -134,6 +134,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
         }
       }
 
+      println(next ?: Pair("", IntRange.EMPTY))
       lastWord.onNext(next ?: Pair("", IntRange.EMPTY))
     }
 
@@ -253,6 +254,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
       viewModel.autoCompleteData,
       handler::post,
       ::runOnUiThread,
+      // This is still broken when mixing tab complete and UI auto complete
       inputEditor::autoComplete
     )
 
@@ -286,7 +288,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
     val previous = autocompletionState
     if (!originalWord.second.isEmpty()) {
       val autoCompletedWords = viewModel.autoCompleteData.value.orEmpty()
-      if (previous != null && lastWord.value == previous.originalWord to previous.range) {
+      if (previous != null && lastWord.value.first == previous.originalWord && lastWord.value.second.start == previous.range.start) {
         val previousIndex = autoCompletedWords.indexOf(previous.completion)
         val autoCompletedWord = if (previousIndex != -1) {
           val change = if (reverse) -1 else +1
@@ -303,8 +305,8 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
             previous.completion,
             autoCompletedWord
           )
-          inputEditor.autoComplete(newState)
           autocompletionState = newState
+          inputEditor.autoComplete(newState)
         } else {
           autocompletionState = null
         }
@@ -317,8 +319,8 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
             null,
             autoCompletedWord
           )
-          inputEditor.autoComplete(newState)
           autocompletionState = newState
+          inputEditor.autoComplete(newState)
         } else {
           autocompletionState = null
         }