diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 2b9193690675441cfb091afc7a2cb9c063b330a6..37cb23b70377abcb91e2b120815bde6e5ab944f1 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -75,6 +75,11 @@
     <!-- 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 name for enabling insertion of suggestion spans (advanced option) [CHAR LIMIT=25] -->
+    <string name="enable_span_insert">Enable recorrections</string>
+    <!-- Option summary for enabling insertion of suggestion spans (advanced option) [CHAR LIMIT=65] -->
+    <string name="enable_span_insert_summary">Set suggestions for recorrections</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 2f321814eb50eee54e58065b666b857b554758dc..d02e5d7b63ce8cf0e533f7e08ba386b45ba1ca1a 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -132,6 +132,12 @@
              android:summary="@string/bigram_suggestion_summary"
              android:persistent="true"
              android:defaultValue="true" />
+          <CheckBoxPreference
+             android:key="enable_span_insert"
+             android:title="@string/enable_span_insert"
+             android:summary="@string/enable_span_insert_summary"
+             android:persistent="true"
+             android:defaultValue="true" />
           <!-- TODO: evaluate results and revive this option. The code already supports it. -->
           <!-- <CheckBoxPreference -->
           <!--    android:key="bigram_prediction" -->
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 85363fd36416d3e26abac74fc0c89c66abb4a95c..cea59fe0adf4beac7dd04d16451e7c83d9062ac3 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1807,9 +1807,13 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         final InputConnection ic = getCurrentInputConnection();
         if (ic != null) {
             mVoiceProxy.rememberReplacedWord(bestWord, mSettingsValues.mWordSeparators);
-            SuggestedWords suggestedWords = mSuggestionsView.getSuggestions();
-            ic.commitText(SuggestionSpanUtils.getTextWithSuggestionSpan(
-                    this, bestWord, suggestedWords), 1);
+            if (mSettingsValues.mEnableSuggestionSpanInsertion) {
+                final SuggestedWords suggestedWords = mSuggestionsView.getSuggestions();
+                ic.commitText(SuggestionSpanUtils.getTextWithSuggestionSpan(
+                        this, bestWord, suggestedWords), 1);
+            } else {
+                ic.commitText(bestWord, 1);
+            }
         }
         mRecorrection.saveRecorrectionSuggestion(mWordComposer, bestWord);
         mHasUncommittedTypedChars = false;
diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java
index 1e2ef482456154474d34f42438a7709e69f7f05d..c42f0564ce220c60d24b654b39f4f5e0063b4306 100644
--- a/java/src/com/android/inputmethod/latin/Settings.java
+++ b/java/src/com/android/inputmethod/latin/Settings.java
@@ -82,6 +82,8 @@ public class Settings extends InputMethodSettingsActivity
             "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_KEY_ENABLE_SPAN_INSERT =
+            "enable_span_insert";
 
     public static final String PREF_USABILITY_STUDY_MODE = "usability_study_mode";
 
@@ -117,6 +119,7 @@ public class Settings extends InputMethodSettingsActivity
         // 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 final boolean mEnableSuggestionSpanInsertion;
 
         private final boolean mShowSettingsKey;
         private final boolean mVoiceKeyEnabled;
@@ -179,6 +182,8 @@ public class Settings extends InputMethodSettingsActivity
                     && isBigramPredictionEnabled(prefs, res);
             mAutoCorrectionThreshold = getAutoCorrectionThreshold(prefs, res);
             mUseContactsDict = prefs.getBoolean(Settings.PREF_KEY_USE_CONTACTS_DICT, true);
+            mEnableSuggestionSpanInsertion =
+                    prefs.getBoolean(Settings.PREF_KEY_ENABLE_SPAN_INSERT, true);
             final boolean defaultShowSettingsKey = res.getBoolean(
                     R.bool.config_default_show_settings_key);
             mShowSettingsKey = isShowSettingsKeyOption(res)