| Index: content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java
 | 
| diff --git a/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java b/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java
 | 
| index 045a54291d6bf7780321817c30a38325b8d589d7..68fb786f50974680e5d741cce6c88cea0519678e 100644
 | 
| --- a/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java
 | 
| +++ b/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java
 | 
| @@ -151,7 +151,12 @@ public class AdapterInputConnection extends BaseInputConnection {
 | 
|          }
 | 
|  
 | 
|          Selection.setSelection(editable, selectionStart, selectionEnd);
 | 
| -        super.setComposingRegion(compositionStart, compositionEnd);
 | 
| +
 | 
| +        if (compositionStart == compositionEnd) {
 | 
| +            removeComposingSpans(editable);
 | 
| +        } else {
 | 
| +            super.setComposingRegion(compositionStart, compositionEnd);
 | 
| +        }
 | 
|  
 | 
|          if (mIgnoreTextInputStateUpdates) return;
 | 
|          updateSelection(selectionStart, selectionEnd, compositionStart, compositionEnd);
 | 
| @@ -380,7 +385,12 @@ public class AdapterInputConnection extends BaseInputConnection {
 | 
|          if (DEBUG) Log.w(TAG, "setComposingRegion [" + start + " " + end + "]");
 | 
|          int a = Math.min(start, end);
 | 
|          int b = Math.max(start, end);
 | 
| -        super.setComposingRegion(a, b);
 | 
| +
 | 
| +        if (a == b) {
 | 
| +            removeComposingSpans(getEditable());
 | 
| +        } else {
 | 
| +            super.setComposingRegion(a, b);
 | 
| +        }
 | 
|          return mImeAdapter.setComposingRegion(a, b);
 | 
|      }
 | 
|  
 | 
| 
 |