diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
index 331384fa585440c7607d585ab9726547ee69f676..be81ed3b346125aff7153b9da0afac252a0eca2e 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
@@ -536,7 +536,6 @@ public class DictionaryFacilitatorForSuggest {
         return maxFreq;
     }
 
-
     public void clearUserHistoryDictionary() {
         final UserHistoryDictionary userHistoryDict = mDictionaries.mUserHistoryDictionary;
         if (userHistoryDict == null) {
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 81b02c396fcfb01b896312688f32ac60a15bb054..971bd1a164e07f3eae1e51ff85a08ed3645f3701 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -84,6 +84,7 @@ import com.android.inputmethod.latin.utils.ApplicationUtils;
 import com.android.inputmethod.latin.utils.CapsModeUtils;
 import com.android.inputmethod.latin.utils.CoordinateUtils;
 import com.android.inputmethod.latin.utils.DialogUtils;
+import com.android.inputmethod.latin.utils.DistracterFilter;
 import com.android.inputmethod.latin.utils.ImportantNoticeUtils;
 import com.android.inputmethod.latin.utils.IntentUtils;
 import com.android.inputmethod.latin.utils.JniUtils;
@@ -540,6 +541,14 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
         refreshPersonalizationDictionarySession();
     }
 
+    private DistracterFilter createDistracterFilter() {
+        final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
+        final Keyboard keyboard = mainKeyboardView.getKeyboard();
+        final DistracterFilter distracterFilter = new DistracterFilter(mInputLogic.mSuggest,
+                keyboard);
+        return distracterFilter;
+    }
+
     private void refreshPersonalizationDictionarySession() {
         final DictionaryFacilitatorForSuggest dictionaryFacilitator =
                 mInputLogic.mSuggest.mDictionaryFacilitator;
@@ -564,7 +573,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
             PersonalizationHelper.removeAllPersonalizationDictionaries(this);
             PersonalizationDictionarySessionRegistrar.resetAll(this);
         } else {
-            PersonalizationDictionarySessionRegistrar.init(this, dictionaryFacilitator);
+            final DistracterFilter distracterFilter = createDistracterFilter();
+            PersonalizationDictionarySessionRegistrar.init(
+                    this, dictionaryFacilitator, distracterFilter);
         }
     }
 
@@ -662,8 +673,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
             mInputLogic.mConnection.finishComposingText();
             mInputLogic.mConnection.endBatchEdit();
         }
+        final DistracterFilter distracterFilter = createDistracterFilter();
         PersonalizationDictionarySessionRegistrar.onConfigurationChanged(this, conf,
-                mInputLogic.mSuggest.mDictionaryFacilitator);
+                mInputLogic.mSuggest.mDictionaryFacilitator, distracterFilter);
         super.onConfigurationChanged(conf);
     }
 
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java
index d6c0dc0dceb1a752c8bef3236f2d1f5ba6237318..9bef7a19824d5db18d3c40ba39c157519f9a55bb 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java
@@ -20,14 +20,17 @@ import android.content.Context;
 import android.content.res.Configuration;
 
 import com.android.inputmethod.latin.DictionaryFacilitatorForSuggest;
+import com.android.inputmethod.latin.utils.DistracterFilter;
 
 public class PersonalizationDictionarySessionRegistrar {
     public static void init(final Context context,
-            final DictionaryFacilitatorForSuggest dictionaryFacilitator) {
+            final DictionaryFacilitatorForSuggest dictionaryFacilitator,
+            final DistracterFilter distracterFilter) {
     }
 
     public static void onConfigurationChanged(final Context context, final Configuration conf,
-            final DictionaryFacilitatorForSuggest dictionaryFacilitator) {
+            final DictionaryFacilitatorForSuggest dictionaryFacilitator,
+            final DistracterFilter distracterFilter) {
     }
 
     public static void onUpdateData(final Context context, final String type) {
diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
new file mode 100644
index 0000000000000000000000000000000000000000..f2a1e524db425b1e4f7e1b813dcc4a62dbb46d99
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.utils;
+
+import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.latin.Suggest;
+
+/**
+ * This class is used to prevent distracters/misspellings being added to personalization
+ * or user history dictionaries
+ */
+public class DistracterFilter {
+    private final Suggest mSuggest;
+    private final Keyboard mKeyboard;
+
+    /**
+     * Create a DistracterFilter instance.
+     *
+     * @param suggest an instance of Suggest which will be used to obtain a list of suggestions
+     *                for a potential distracter/misspelling
+     * @param keyboard the keyboard that is currently being used. This information is needed
+     *                 when calling mSuggest.getSuggestedWords(...) to obtain a list of suggestions.
+     */
+    public DistracterFilter(final Suggest suggest, final Keyboard keyboard) {
+        mSuggest = suggest;
+        mKeyboard = keyboard;
+    }
+
+    public boolean isDistractorToWordsInDictionaries(final String prevWord,
+            final String targetWord) {
+        // TODO: to be implemented
+        return false;
+    }
+}