diff --git a/core/misc/autocomplete.js b/core/misc/autocomplete.js
index 8495f7e45b..34c762e8a4 100644
--- a/core/misc/autocomplete.js
+++ b/core/misc/autocomplete.js
@@ -17,6 +17,9 @@
    * @return {Array}
    *   Array of values, split by comma.
    */
+  const inBrowser = typeof window !== 'undefined';
+  const UA = inBrowser && window.navigator.userAgent.toLowerCase();
+  const isAndroid = UA && UA.indexOf('android') > 0;
   function autocompleteSplitValues(value) {
     // We will match the value against comma-separated terms.
     const result = [];
@@ -230,12 +233,17 @@
         });
 
         // Use CompositionEvent to handle IME inputs. It requests remote server on "compositionend" event only.
-        $autocomplete.on('compositionstart.autocomplete', () => {
-          autocomplete.options.isComposing = true;
-        });
-        $autocomplete.on('compositionend.autocomplete', () => {
+        $autocomplete.on('change.autocomplete', function () {
           autocomplete.options.isComposing = false;
         });
+        if (!isAndroid) {
+          $autocomplete.on('compositionstart.autocomplete', function () {
+            autocomplete.options.isComposing = true;
+          });
+          $autocomplete.on('compositionend.autocomplete', function () {
+            autocomplete.options.isComposing = false;
+          });
+        }
       }
     },
     detach(context, settings, trigger) {
