 			}
 
 			// Report stalls and/or wait on timebase establishment.
-			if (stalled || _bestEffortDownloaderMonitor)
+			if (stalled)
 			{
 				trace("Stalling -- quality[" + quality + "] lastQuality[" + lastQuality + "]");
+
+				// TODO - ensure a reload is pending?
+
 				return new HTTPStreamRequest(HTTPStreamRequestKind.LIVE_STALL);
 			}
 

			_bestEffortDownloaderMonitor = new EventDispatcher();
			_bestEffortDownloaderMonitor.addEventListener(HTTPStreamingEvent.DOWNLOAD_COMPLETE, onBestEffortDownloadComplete);
			_bestEffortDownloaderMonitor.addEventListener(HTTPStreamingEvent.DOWNLOAD_ERROR, onBestEffortDownloadError);
			
			if(!segments)
			{
				// Get the URL.
				var newMan:HLSManifestParser = getManifestForQuality(quality);
				if(newMan == null)
				{
					trace("No manifest found to best effort request quality level " + quality);
					return null;
				}


			
			if ( reloadingManifest || !manifest.streamEnds )
			{
				trace("Stalling -- requested segment " + newSequence + " past the end " + segments[segments.length-1].id + " and we're in a live stream");

				return new HTTPStreamRequest(HTTPStreamRequestKind.LIVE_STALL, null, segments[segments.length-1].duration / 2);
			}
