 		 *
 		 * if we had a pending BEF download, invalid it
 		 **/
-		private function stopListeningToBestEffortDownload():void
+		private function stopListeningToBestEffortDownload(cleanup:Boolean = false):void
 		{
 			if(_bestEffortDownloaderMonitor != null)
 			{
+				if(_bestEffortDownloader != null && cleanup)
+				{
+					trace("stopListeningToBestEffortDownload - firing skip event to keep rest of system in sync");
+					skipBestEffortFetch(_lastBestEffortFetchURI, _bestEffortDownloader as HLSHTTPStreamDownloader);					
+				}
+
 				trace("stopListeningToBestEffortDownload - Disconnecting existing best effort monitor.");
 				_bestEffortDownloaderMonitor.removeEventListener(HTTPStreamingEvent.DOWNLOAD_COMPLETE, onBestEffortDownloadComplete);
 				_bestEffortDownloaderMonitor.removeEventListener(HTTPStreamingEvent.DOWNLOAD_ERROR, onBestEffortDownloadError);

			else if(!checkAnySegmentKnowledge(currentManifest.segments) && !isBestEffortActive())
			{
				trace("(B) Encountered a live/VOD manifest with no timebase knowledge, request newest segment via best effort path for quality " + reloadingQuality);
				_pendingBestEffortRequest = initiateBestEffortRequest(getLastSequence() + 1, lastQuality, currentManifest.segments, currentManifest);
			}
			
			if(!checkAnySegmentKnowledge(newManifest.segments) || !checkAnySegmentKnowledge(currentManifest.segments))

			trace("Best effort download complete " + event.toString());
			
			// unregister the listeners
			stopListeningToBestEffortDownload(false);
			
			trace("Start download parse");
			bufferAndParseDownloadedBestEffortBytes(event.url, event.downloader as HLSHTTPStreamDownloader);
