diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiCategory.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiCategory.java
index a9711ae..f2f52f8 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiCategory.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiCategory.java
@@ -120,22 +120,29 @@
             mCategoryTabIconId[i] = emojiPaletteViewAttr.getResourceId(
                     sCategoryTabIconAttr[i], 0);
         }
+
+        int defaultCategoryId = EmojiCategory.ID_SYMBOLS;
         addShownCategoryId(EmojiCategory.ID_RECENTS);
         if (BuildCompatUtils.EFFECTIVE_SDK_INT >= Build.VERSION_CODES.KITKAT) {
+            defaultCategoryId = EmojiCategory.ID_PEOPLE;
             addShownCategoryId(EmojiCategory.ID_PEOPLE);
             addShownCategoryId(EmojiCategory.ID_OBJECTS);
             addShownCategoryId(EmojiCategory.ID_NATURE);
             addShownCategoryId(EmojiCategory.ID_PLACES);
-            mCurrentCategoryId =
-                    Settings.readLastShownEmojiCategoryId(mPrefs, EmojiCategory.ID_PEOPLE);
-        } else {
-            mCurrentCategoryId =
-                    Settings.readLastShownEmojiCategoryId(mPrefs, EmojiCategory.ID_SYMBOLS);
         }
         addShownCategoryId(EmojiCategory.ID_SYMBOLS);
         addShownCategoryId(EmojiCategory.ID_EMOTICONS);
-        getKeyboard(EmojiCategory.ID_RECENTS, 0 /* cagetoryPageId */)
-                .loadRecentKeys(mCategoryKeyboardMap.values());
+
+        DynamicGridKeyboard recentsKbd =
+                getKeyboard(EmojiCategory.ID_RECENTS, 0 /* cagetoryPageId */);
+        recentsKbd.loadRecentKeys(mCategoryKeyboardMap.values());
+
+        mCurrentCategoryId = Settings.readLastShownEmojiCategoryId(mPrefs, defaultCategoryId);
+        if (mCurrentCategoryId == EmojiCategory.ID_RECENTS &&
+                recentsKbd.getSortedKeys().isEmpty()) {
+            Log.i(TAG, "No recent emojis found, starting in category " + mCurrentCategoryId);
+            mCurrentCategoryId = defaultCategoryId;
+        }
     }
 
     private void addShownCategoryId(final int categoryId) {
