diff --git a/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java b/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java
index 37b20b4d7d6539040a8140b2d407eeb30acd9b32..93f12d53e2fbdd5d013dce93ea9b209637f6a213 100644
--- a/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java
+++ b/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java
@@ -68,6 +68,7 @@ public final class WordListPreference extends DialogPreference {
     static final private int ANIMATION_OUT = 2;
 
     private static int sLastClickedIndex = NOT_AN_INDEX;
+    private static String sLastClickedWordlistId = null;
     private final OnWordListPreferenceClick mPreferenceClickHandler =
             new OnWordListPreferenceClick();
     private final OnActionButtonClick mActionButtonClickHandler =
@@ -199,7 +200,8 @@ public final class WordListPreference extends DialogPreference {
         ((ViewGroup)view).setLayoutTransition(null);
         final Button button = (Button)view.findViewById(R.id.wordlist_button);
         button.setText(getButtonLabel(mStatus));
-        button.setVisibility(View.INVISIBLE);
+        // String identity match. This is an ==, not an .equals, on purpose.
+        button.setVisibility(mWordlistId == sLastClickedWordlistId ? View.VISIBLE : View.INVISIBLE);
         button.setOnClickListener(mActionButtonClickHandler);
         view.setOnClickListener(mPreferenceClickHandler);
     }
@@ -218,6 +220,7 @@ public final class WordListPreference extends DialogPreference {
                 animateButton(getButtonForIndex(listView, sLastClickedIndex), ANIMATION_OUT);
             }
             sLastClickedIndex = myIndex;
+            sLastClickedWordlistId = mWordlistId;
         }
     }