diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index b75b21a8478dc3a6092774d1372b31ab69fe2ebf..3d03271add6d4567b419d88b5912e411de5e02c2 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -58,6 +58,11 @@
     <!-- Description for delay for dismissing a popup on screen: default value of the delay [CHAR LIMIT=15] -->
     <string name="key_preview_popup_dismiss_default_delay">Default</string>
 
+    <!-- Option name for enabling or disabling the use of names of people in Contacts for suggestion and correction [CHAR LIMIT=25] -->
+    <string name="use_contacts_dict">Suggest Contact names</string>
+    <!-- Description for option enabling or disabling the use of names of people in Contacts for suggestion and correction [CHAR LIMIT=65] -->
+    <string name="use_contacts_dict_summary">Use names from Contacts for suggestions and corrections</string>
+
     <!-- Option to enable auto capitalization of sentences -->
     <string name="auto_cap">Auto-capitalization</string>
 
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index b0497a51c3e1f9edcf54b473da0885ce71d31f2e..5f4a27d911e5274c77bbe20325fb48ca70bb01cb 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -138,6 +138,12 @@
           <ListPreference
               android:key="pref_key_preview_popup_dismiss_delay"
               android:title="@string/key_preview_popup_dismiss_delay" />
+          <CheckBoxPreference
+             android:key="pref_key_use_contacts_dict"
+             android:title="@string/use_contacts_dict"
+             android:summary="@string/use_contacts_dict_summary"
+             android:persistent="true"
+             android:defaultValue="true" />
     </PreferenceScreen>
     <!-- <Preference
         android:title="Debug Settings"
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 5b242b1e0302bce5e007ebeeb29e4bb108999967..940f6b835ac6fd195b80f5253c09bed3f8f1bc12 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -155,7 +155,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
 
     private UserDictionary mUserDictionary;
     private UserBigramDictionary mUserBigramDictionary;
-    private ContactsDictionary mContactsDictionary;
     private AutoDictionary mAutoDictionary;
 
     // TODO: Create an inner class to group options and pseudo-options to improve readability.
@@ -407,6 +406,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         if (null == mPrefs) mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
         if (null == mSubtypeSwitcher) mSubtypeSwitcher = SubtypeSwitcher.getInstance();
         mSettingsValues = new Settings.Values(mPrefs, this, mSubtypeSwitcher.getInputLocaleStr());
+        resetContactsDictionary();
     }
 
     private void initSuggest() {
@@ -429,8 +429,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         mUserDictionary = new UserDictionary(this, localeStr);
         mSuggest.setUserDictionary(mUserDictionary);
 
-        mContactsDictionary = new ContactsDictionary(this, Suggest.DIC_CONTACTS);
-        mSuggest.setContactsDictionary(mContactsDictionary);
+        resetContactsDictionary();
 
         mAutoDictionary = new AutoDictionary(this, this, localeStr, Suggest.DIC_AUTO);
         mSuggest.setAutoDictionary(mAutoDictionary);
@@ -443,6 +442,13 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         Utils.setSystemLocale(res, savedLocale);
     }
 
+    private void resetContactsDictionary() {
+        if (null == mSuggest) return;
+        ContactsDictionary contactsDictionary = mSettingsValues.mUseContactsDict
+                ? new ContactsDictionary(this, Suggest.DIC_CONTACTS) : null;
+        mSuggest.setContactsDictionary(contactsDictionary);
+    }
+
     /* package private */ void resetSuggestMainDict() {
         final String localeStr = mSubtypeSwitcher.getInputLocaleStr();
         final Locale keyboardLocale = Utils.constructLocaleFromString(localeStr);
diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java
index 956c51e068ba13e0c220773f046231804567e84f..3ad2a59651d7fb2ddc61f5079ead9f481ff5294e 100644
--- a/java/src/com/android/inputmethod/latin/Settings.java
+++ b/java/src/com/android/inputmethod/latin/Settings.java
@@ -79,6 +79,8 @@ public class Settings extends PreferenceActivity
 
     public static final String PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY =
             "pref_key_preview_popup_dismiss_delay";
+    public static final String PREF_KEY_USE_CONTACTS_DICT =
+            "pref_key_use_contacts_dict";
 
     public static final String PREF_USABILITY_STUDY_MODE = "usability_study_mode";
 
@@ -114,6 +116,7 @@ public class Settings extends PreferenceActivity
         public final boolean mBigramSuggestionEnabled;
         // Prediction: use bigrams to predict the next word when there is no input for it yet
         public final boolean mBigramPredictionEnabled;
+        public final boolean mUseContactsDict;
 
         public Values(final SharedPreferences prefs, final Context context,
                 final String localeStr) {
@@ -175,6 +178,8 @@ public class Settings extends PreferenceActivity
 
             mAutoCorrectionThreshold = getAutoCorrectionThreshold(prefs, res);
 
+            mUseContactsDict = prefs.getBoolean(Settings.PREF_KEY_USE_CONTACTS_DICT, true);
+
             Utils.setSystemLocale(res, savedLocale);
         }
 
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index ca75866c0e1b98e851fb756ad945432935f3be6b..33f9820cc5a8121ba4f205fd069a0f128cbad35e 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -184,12 +184,17 @@ public class Suggest implements Dictionary.WordCallback {
     }
 
     /**
-     * Sets an optional contacts dictionary resource to be loaded.
+     * Sets an optional contacts dictionary resource to be loaded. It is also possible to remove
+     * the contacts dictionary by passing null to this method. In this case no contacts dictionary
+     * won't be used.
      */
     public void setContactsDictionary(Dictionary contactsDictionary) {
         if (contactsDictionary != null) {
             mUnigramDictionaries.put(DICT_KEY_CONTACTS, contactsDictionary);
             mBigramDictionaries.put(DICT_KEY_CONTACTS, contactsDictionary);
+        } else {
+            mUnigramDictionaries.remove(DICT_KEY_CONTACTS);
+            mBigramDictionaries.remove(DICT_KEY_CONTACTS);
         }
     }