diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 8768e12..b4d6ca7 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -420,18 +420,6 @@
                 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 @@
 
     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")
