         this.$get = ($document, $q, $window, $rootScope)->
             'ngInject'
             {
-                init: ->
-                    getAndFree = ->
-                        _grecaptcha = $window.grecaptcha
-                        $window.grecaptcha = undefined
-                        return
-                    
-                    getAndFree() if $window.grecaptcha
+                init : ->
+                    _grecaptcha = $window.grecaptcha if $window.grecaptcha
                     return $q.resolve _grecaptcha if _grecaptcha
                     
                     promise = $q (resolve, reject)->
-                        $window[onloadMethod] = ->
-                            getAndFree()
+                        $window[_onloadMethod] = ->
+                            _grecaptcha = $window.grecaptcha
                             $rootScope.$apply ->
                                 resolve _grecaptcha
                             return

                    
                    promise
                    
                render: (element, params, onSuccess, onExpire)->
                    _params = angular.extend {}, _parameters, params
                    
                    if not _params.sitekey

            scriptTag.type = 'text/javascript';
            scriptTag.async = true;
            scriptTag.defer = true;
            scriptTag.src = "//www.google.com/recaptcha/api.js?onload=#{_onloadMethod}&render=explicit" + if _languageCode then "&h1#{_languageCode}" else ""
            
            s = $document[0].querySelector('body')
            s.appendChild(scriptTag);
