 			// This code is optimized because it is frequently called and causes
 			// (on FF FP 17 debug) one second frame drop events when too slow.
 
+			var startTime:int = getTimer();
+
 			if(isNaN(_initialTime))
 				return _lastValidTimeTime;
 
-			var startTime:int = getTimer();
-
 			// Do we need to expire the cache?
-			if(startTime - _timeCache_LastUpdatedTimestamp > _timeCache_ExpirationPeriod)
+			if(getTimer() - _timeCache_LastUpdatedTimestamp > _timeCache_ExpirationPeriod)
 				_timeCache_LastUpdatedTimestamp = NaN;
 
 			// If cache invalid, repopulate it.

				if(indexHandler.liveEdge != Number.MAX_VALUE)
					pubTime += indexHandler.liveEdge - indexHandler.windowDuration;
				else
					pubTime += indexHandler.streamStartAbsoluteTime;
			}

			return pubTime;

				{
					_timeCache_liveEdge = indexHandler.liveEdge;
					_timeCache_liveEdgeMinusWindowDuration = _timeCache_liveEdge - indexHandler.windowDuration;
				}
				else
				{
					_timeCache_liveEdge = 0;
					_timeCache_liveEdgeMinusWindowDuration = 0;
				}

				_timeCache_streamStartAbsoluteTime = indexHandler.streamStartAbsoluteTime;

				_timeCache_LastUpdatedTimestamp = getTimer();
			}

			// First determine our absolute time.
			var potentialNewTime:Number = super.time + _initialTime;

			// If we are VOD, then offset time so we start at the beginning.
			var lastMan:HLSManifestParser = indexHandler.getLastSequenceManifest();
			if(lastMan && lastMan.streamEnds == true && _timeCache_streamStartAbsoluteTime)
				potentialNewTime -= _timeCache_streamStartAbsoluteTime;

			// Take into account any cached live edge offset.
			if(_timeCache_liveEdge != Number.MAX_VALUE)
				potentialNewTime -= _timeCache_liveEdgeMinusWindowDuration;

			if(!isNaN(potentialNewTime))
				_lastValidTimeTime = potentialNewTime;

