diff --git a/src/components/IntlTelInput.js b/src/components/IntlTelInput.js
index <HASH>..<HASH> 100644
--- a/src/components/IntlTelInput.js
+++ b/src/components/IntlTelInput.js
@@ -375,8 +375,6 @@ export default React.createClass({
         outerHeight: this.state.telInput.outerHeight
       }
     });
-
-    this.notifyPhoneNumberChange(formatted);
   },
 
   // replace any existing dial code with the new one (if not in nationalMode)
@@ -596,6 +594,9 @@ export default React.createClass({
       document.removeEventListener('keydown', this.handleDocumentKeyDown);
       document.querySelector('html').removeEventListener('click', this.handleDocumentClick);
     }
+    if (this.state.telInput.value !== nextState.telInput.value) {
+      this.notifyPhoneNumberChange(nextState.telInput.value);
+    }
   },
 
   // prepare all of the country data, including onlyCountries and preferredCountries options
@@ -959,8 +960,6 @@ export default React.createClass({
       // if no autoFormat, just update flag
       this.updateFlagFromNumber(React.findDOMNode(this.refs.telInput).value);
     }
-
-    this.notifyPhoneNumberChange(e.target.value);
   },
 
   handleInputChange (e) {
Prevent infinite loop when phone number has changed