diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index ab21cff..8913b15 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1870,7 +1870,7 @@
     private boolean handleSeparator(final int primaryCode, final int x, final int y,
             final int spaceState) {
         if (ProductionFlag.IS_EXPERIMENTAL) {
-            ResearchLogger.latinIME_handleSeparator();
+            ResearchLogger.recordTimeForLogUnitSplit();
         }
         boolean didAutoCorrect = false;
         // Handle separator
diff --git a/java/src/com/android/inputmethod/research/ResearchLogger.java b/java/src/com/android/inputmethod/research/ResearchLogger.java
index 8b6bff4..f4249a0 100644
--- a/java/src/com/android/inputmethod/research/ResearchLogger.java
+++ b/java/src/com/android/inputmethod/research/ResearchLogger.java
@@ -1705,12 +1705,16 @@
         researchLogger.enqueueEvent(LOGSTATEMENT_ONUSERPAUSE, interval);
     }
 
-    public static void latinIME_handleSeparator() {
-        // Reset the saved down event time.  For tapping, motion events, etc. before the separator
-        // are assigned to the previous LogUnit, and events after the separator are assigned to the
-        // next LogUnit.  In the case of multitap, this might capture down events corresponding to
-        // the next word, however it should not be more than a character or two.
-        getInstance().setSavedDownEventTime(SystemClock.uptimeMillis());
+    /**
+     * Record the current time in case the LogUnit is later split.
+     *
+     * If the current logUnitis split, then tapping, motion events, etc. before this time should
+     * be assigned to one LogUnit, and events after this time should go into the following LogUnit.
+     */
+    public static void recordTimeForLogUnitSplit() {
+        final ResearchLogger researchLogger = getInstance();
+        researchLogger.setSavedDownEventTime(SystemClock.uptimeMillis());
+        researchLogger.mSavedDownEventTime = Long.MAX_VALUE;
     }
 
     /**
