diff --git a/java/src/com/android/inputmethod/research/ResearchLogger.java b/java/src/com/android/inputmethod/research/ResearchLogger.java
index fe31039e3006242eae7014e17cfd44ca6eb4066e..3443b7a7a17f3931ce7543780ab611c04d97f335 100644
--- a/java/src/com/android/inputmethod/research/ResearchLogger.java
+++ b/java/src/com/android/inputmethod/research/ResearchLogger.java
@@ -925,18 +925,20 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
     public static void latinIME_onWindowHidden(final int savedSelectionStart,
             final int savedSelectionEnd, final InputConnection ic) {
         if (ic != null) {
-            // Capture the TextView contents.  This will trigger onUpdateSelection(), so we
-            // set sLatinIMEExpectingUpdateSelection so that when onUpdateSelection() is called,
-            // it can tell that it was generated by the logging code, and not by the user, and
-            // therefore keep user-visible state as is.
-            ic.beginBatchEdit();
-            ic.performContextMenuAction(android.R.id.selectAll);
-            CharSequence charSequence = ic.getSelectedText(0);
-            ic.setSelection(savedSelectionStart, savedSelectionEnd);
-            ic.endBatchEdit();
-            sLatinIMEExpectingUpdateSelection = true;
             final Object[] values = new Object[2];
             if (OUTPUT_ENTIRE_BUFFER) {
+                // Capture the TextView contents.  This will trigger onUpdateSelection(), so we
+                // set sLatinIMEExpectingUpdateSelection so that when onUpdateSelection() is called,
+                // it can tell that it was generated by the logging code, and not by the user, and
+                // therefore keep user-visible state as is.
+                ic.beginBatchEdit();
+                ic.performContextMenuAction(android.R.id.selectAll);
+                CharSequence charSequence = ic.getSelectedText(0);
+                if (savedSelectionStart != -1 && savedSelectionEnd != -1) {
+                    ic.setSelection(savedSelectionStart, savedSelectionEnd);
+                }
+                ic.endBatchEdit();
+                sLatinIMEExpectingUpdateSelection = true;
                 if (TextUtils.isEmpty(charSequence)) {
                     values[0] = false;
                     values[1] = "";