diff --git a/src/update.js b/src/update.js
index <HASH>..<HASH> 100644
--- a/src/update.js
+++ b/src/update.js
@@ -1,5 +1,15 @@
 // @flow
 
+function createInputEvent(): Event {
+  if (typeof Event !== "undefined") {
+    return new Event("input", { bubbles: true, cancelable: true });
+  } else {
+    const event = document.createEvent("Event");
+    event.initEvent("input", true, true);
+    return event;
+  }
+}
+
 export default function (el: HTMLTextAreaElement, headToCursor: string, cursorToTail: ?string) {
   const curr = el.value,                            // strA + strB1 + strC
         next = headToCursor + (cursorToTail || ''), // strA + strB2 + strC
@@ -24,6 +34,7 @@ export default function (el: HTMLTextAreaElement, headToCursor: string, cursorTo
     // Document.execCommand returns false if the command is not supported.
     // Firefox and IE returns false in this case.
     el.value = next;
+    el.dispatchEvent(createInputEvent());
   }
 
   // Move cursor to the end of headToCursor
Dispatch input event on Firefox and IE