diff --git a/java/src/com/android/inputmethod/research/ResearchLogger.java b/java/src/com/android/inputmethod/research/ResearchLogger.java
index 5c44af1f2e8e3c0975c718c2b67461d489ee4e50..01b5bdda5ba84cade469244d8ada34c9948a625f 100644
--- a/java/src/com/android/inputmethod/research/ResearchLogger.java
+++ b/java/src/com/android/inputmethod/research/ResearchLogger.java
@@ -1202,7 +1202,12 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
     public static void latinIME_swapSwapperAndSpace(final CharSequence originalCharacters,
             final String charactersAfterSwap) {
         final ResearchLogger researchLogger = getInstance();
-        final LogUnit logUnit = researchLogger.mMainLogBuffer.peekLastLogUnit();
+        final LogUnit logUnit;
+        if (researchLogger.mMainLogBuffer == null) {
+            logUnit = null;
+        } else {
+            logUnit = researchLogger.mMainLogBuffer.peekLastLogUnit();
+        }
         if (logUnit != null) {
             researchLogger.enqueueEvent(logUnit, LOGSTATEMENT_LATINIME_SWAPSWAPPERANDSPACE,
                     originalCharacters, charactersAfterSwap);
@@ -1273,7 +1278,12 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
             final String originallyTypedWord, final boolean isBatchMode) {
         final ResearchLogger researchLogger = getInstance();
         // TODO: Verify that mCurrentLogUnit has been restored and contains the reverted word.
-        final LogUnit logUnit = researchLogger.mMainLogBuffer.peekLastLogUnit();
+        final LogUnit logUnit;
+        if (researchLogger.mMainLogBuffer == null) {
+            logUnit = null;
+        } else {
+            logUnit = researchLogger.mMainLogBuffer.peekLastLogUnit();
+        }
         if (originallyTypedWord.length() > 0 && hasLetters(originallyTypedWord)) {
             if (logUnit != null) {
                 logUnit.setWord(originallyTypedWord);