diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 8768e126ec6812d0382f75c3df3b85b9e426420e..b4d6ca736e4a8360aa08164c9827c72eabaa77d5 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -420,18 +420,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
                 if (latinIme != null) {
                     executePendingImsCallback(latinIme, editorInfo, restarting);
                     latinIme.onStartInputInternal(editorInfo, restarting);
-                    if (ProductionFlags.ENABLE_CURSOR_RECT_CALLBACK) {
-                        InputConnectionCompatUtils.requestCursorRect(
-                                latinIme.getCurrentInputConnection(), true /* enableMonitor */);
-                    }
-                    if (ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK) {
-                        // AcceptTypedWord feature relies on CursorAnchorInfo.
-                        if (latinIme.mSettings.getCurrent().mShouldShowUiToAcceptTypedWord) {
-                            InputConnectionCompatUtils.requestCursorAnchorInfo(
-                                    latinIme.getCurrentInputConnection(), true /* enableMonitor */,
-                                    true /* requestImmediateCallback */);
-                        }
-                    }
                 }
             }
         }
@@ -766,6 +754,18 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
 
     private void onStartInputInternal(final EditorInfo editorInfo, final boolean restarting) {
         super.onStartInput(editorInfo, restarting);
+        if (ProductionFlags.ENABLE_CURSOR_RECT_CALLBACK) {
+            InputConnectionCompatUtils.requestCursorRect(getCurrentInputConnection(),
+                    true /* enableMonitor */);
+        }
+        if (ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK) {
+            // AcceptTypedWord feature relies on CursorAnchorInfo.
+            if (mSettings.getCurrent().mShouldShowUiToAcceptTypedWord) {
+                InputConnectionCompatUtils.requestCursorAnchorInfo(
+                        getCurrentInputConnection(), true /* enableMonitor */,
+                        true /* requestImmediateCallback */);
+            }
+        }
     }
 
     @SuppressWarnings("deprecation")