diff --git a/app/angular.audio.js b/app/angular.audio.js
index <HASH>..<HASH> 100644
--- a/app/angular.audio.js
+++ b/app/angular.audio.js
@@ -150,6 +150,12 @@ angular.module('ngAudio', [])
 .factory('NgAudioObject', ['cleverAudioFindingService', '$rootScope', '$interval', '$timeout', 'ngAudioGlobals', function(cleverAudioFindingService, $rootScope, $interval, $timeout, ngAudioGlobals) {
     return function(id, scope) {
 
+        function twiddle(){
+            audio.play();
+            audio.pause();
+            window.removeEventListener("click",twiddle);
+        }
+
         var $audioWatch,
             $intervalWatch,
             $willPlay = false,
@@ -287,9 +293,9 @@ angular.module('ngAudio', [])
                 audio = nativeAudio;
                 if (ngAudioGlobals.unlock) {
 
-                    window.addEventListener("click",function twiddle(){
-                        audio.play();
-                        audio.pause();
+                    window.addEventListener("click", twiddle);
+                    
+                    audio.addEventListener('playing', function() {
                         window.removeEventListener("click",twiddle);
                     });
Better fix for pr<I>, fix twiddle being called too early.