 			//trace(" super.time (" + super.time + ") + " + _initialTime + " = " + potentialNewTime);
 
 			// If we are VOD, then offset time so 0 seconds is the start of the stream.
-			var disableLiveEdgeFixup:Boolean = false;
 			if(indexHandler)
 			{
 				var lastMan:HLSManifestParser = indexHandler.getLastSequenceManifest();
 				if(lastMan && lastMan.streamEnds == true && _timeCache_streamStartAbsoluteTime)
 					potentialNewTime -= _timeCache_streamStartAbsoluteTime;
-				else 
-				{
-					potentialNewTime = absoluteTime;
-					disableLiveEdgeFixup = true;
-				}
-			}
-
-			// Take into account any cached live edge offset.
-			if(_timeCache_liveEdge != Number.MAX_VALUE && !disableLiveEdgeFixup)
+			}
+
+			// If we are live/DVR, then subtract the live edge offset so we report time
+			// window-relative (0 seconds start of window, N seconds live edge of window
+			// of N seconds in length).
+			if(_timeCache_liveEdge != Number.MAX_VALUE)
 			{
 				//trace(" minus " + _timeCache_liveEdgeMinusWindowDuration);
 				potentialNewTime -= _timeCache_liveEdgeMinusWindowDuration;

					}					
				}

				if(didValidUpdate)
				{
					_timeCache_streamStartAbsoluteTime = indexHandler.streamStartAbsoluteTime;

						}
						
						// We do not allow the user to seek to before the DVR window
						if (indexHandler && _seekTarget < indexHandler.lastKnownPlaylistStartTime && !isNaN(_enhancedSeekTarget))
						{
							CONFIG::LOGGING
							{
								logger.debug("Attempting to seek outside of DVR window, seeking to last known playlist start time of " + indexHandler.lastKnownPlaylistStartTime);
							}
							_seekTarget = _enhancedSeekTarget = indexHandler.lastKnownPlaylistStartTime;
						}
						
						// Handle a case where seeking to the end of a VOD causes the replay function to break
