             {
                 inLoadingState3 = true;
                 
-                // the seek(0) is asynchronous so let's add an event listener to see when it's finsished:
-                videoPlayer.addEventListener(SeekEvent.SEEKING_CHANGE, videoPlayer_seekChangeHandler);
-                
-                // called play(), now call pause() and seek(0);
-                videoPlayer.pause();
-                videoPlayer.seek(0);
+                // Don't call pause and seek inside this handler because OSMF is 
+                // not expecting us to change its HTTPStreamingState value in 
+                // HTTPNetStream.onMainTimer as a result of dispatching this 
+                // event (see SDK-27028).
+                callLater(pauseAndSeekCallBack);
             }
         }
     }

            {
                inLoadingState3 = true;
                
                // the seek(0) is asynchronous so let's add an event listener to see when it's finsished:
                videoPlayer.addEventListener(SeekEvent.SEEKING_CHANGE, videoPlayer_seekChangeHandler);
                
                // called play(), now call pause() and seek(0);
                videoPlayer.pause();
                videoPlayer.seek(0);
            }
            else
            {

            }
            
            // call play(), here, then wait to call pause() and seek(0) in the 
            // mediaSizeChangeHandler
            videoPlayer.play();
        }
    }
