diff --git a/angular-intercom.js b/angular-intercom.js
index <HASH>..<HASH> 100644
--- a/angular-intercom.js
+++ b/angular-intercom.js
@@ -46,12 +46,22 @@
       var _intercom = angular.isFunction($window.Intercom) ? $window.Intercom : angular.noop;
 
       if (_asyncLoading) {
+        // wait up to 1 sec before aborting
+        var _try = 10;
         // Load client in the browser
-        var onScriptLoad = function(callback) {
+        var onScriptLoad = function tryF(callback) {
           $timeout(function() {
-            // Resolve the deferred promise
-            // as the Intercom object on the window
-            deferred.resolve($window.Intercom);
+            if(_try === 0){
+              return deferred.resolve($window.Intercom);
+            }
+
+            if($window.Intercom){
+              // Resolve the deferred promise
+              // as the Intercom object on the window
+              return deferred.resolve($window.Intercom);
+            }
+            _try--;
+            setTimeout(tryF.bind(null, callback), 100); // wait 100ms before next try
           });
         };
         createScript($document[0], onScriptLoad);
Retry each <I>ms for 1s intercom async loading, fixes #2