 				trace("issueManifestReloadIfNeeded - waiting on reload");
 				return new HTTPStreamRequest (HTTPStreamRequestKind.LIVE_STALL, null, SHORT_LIVE_STALL_DELAY);
 			}
-
+			
 			// Otherwise, issue a reload and return a stall.
 			if (reloadTimer)
 				reloadTimer.stop(); // In case the timer is active - don't want to do another reload in the middle of it
-
+			
 			trace("issueManifestReloadIfNeeded - Firing reload for quality " + quality);
 			
 			reloadingQuality = quality;
-
+			
 			reloadingManifest = new HLSManifestParser();
 			reloadingManifest.quality = quality;
 			reloadingManifest.type = manToReload.type;
 			reloadingManifest.addEventListener(Event.COMPLETE, onReloadComplete);
 			reloadingManifest.addEventListener(IOErrorEvent.IO_ERROR, onReloadError);
 			reloadingManifest.reload(manToReload);
-
+			
 			return new HTTPStreamRequest (HTTPStreamRequestKind.LIVE_STALL, null, SHORT_LIVE_STALL_DELAY);
 		}
 		
 		public override function getNextFile(quality:int):HTTPStreamRequest
 		{
 			trace("--- getNextFile(" + quality + ")");
-
+			
 			targetQuality = quality;
-
+			
+			// Switch to getFileForTime if a pending time is present.
+			if(!isNaN(_pendingStartTime))
+			{
+				trace("getNextFile - pending start time, going to getFileForTime");
+				return getFileForTime(_pendingStartTime, quality);
+			}
+			
 			// Fire any pending best effort requests.
 			if(_pendingBestEffortRequest)
 			{

		public override function getFileForTime(time:Number, quality:int):HTTPStreamRequest
		{	
			trace("--- getFileForTime(time=" + time + ", quality=" + quality + ")");

			targetQuality = quality;

			// Force a reload if needed.
			var manifestResponse:HTTPStreamRequest = issueManifestReloadIfNeeded(quality);
			if(manifestResponse != null)
				return manifestResponse;

			var origQuality:int = quality;
			quality = getWorkingQuality(quality);
			var segments:Vector.<HLSManifestSegment> = getSegmentsForQuality( origQuality );

				return -1;
			
			var segments:Vector.<HLSManifestSegment> = getSegmentsForQuality( lastQuality );
			
			for (var i:int = segments.length - 1; i >= 0; --i)
			{
				if (segments[i].startTime < time)
