 					// We've reached the tag whose timestamp is greater
 					// than _enhancedSeekTarget, so we can stop seeking.
 					_enhancedSeekTarget = NaN;
-
-					// Update _seekTime even though it's not used.
-					if (_seekTime < 0)
-						_seekTime = currentTime;
-
-					// Update initial time with time of tag.
-					if(isNaN(_initialTime))
-						_initialTime = currentTime;
 
 					// Process any client side seek tags.
 					if (_enhancedSeekTags != null && _enhancedSeekTags.length > 0)

			}

			var realTimestamp:int = wrapTagTimestampToFLVTimestamp(tag.timestamp);

			// Apply bump if present.
			if(indexHandler && indexHandler.bumpedTime 
				&& (_enhancedSeekTarget > indexHandler.bumpedSeek
					|| _seekTarget > indexHandler.bumpedSeek))
			{
				CONFIG::LOGGING
				{
					logger.debug("INDEX HANDLER REQUESTED TIME BUMP to " + indexHandler.bumpedSeek);
				}
				_seekTarget = indexHandler.bumpedSeek;
				_enhancedSeekTarget = indexHandler.bumpedSeek;
			}

			if(_enhancedSeekTarget == Number.MAX_VALUE)
			{
				CONFIG::LOGGING
				{
					logger.debug("Left over enhanced seek-to-end, aborting (_seekTarget=" + _seekTarget + ").");
				}
				_enhancedSeekTarget = NaN;
				_seekTarget = NaN;
			}

			if(indexHandler)
				indexHandler.bumpedTime = false;

			var currentTime:Number = (realTimestamp / 1000.0) + _fileTimeAdjustment;
			
			CONFIG::LOGGING
			{
				logger.debug("Saw tag @ " + realTimestamp + " timestamp=" + tag.timestamp + " currentTime=" + currentTime + " _seekTime=" + _seekTime + " _enhancedSeekTarget="+ _enhancedSeekTarget + " dataSize=" + tag.dataSize);
			}

			// Fix for http://bugs.adobe.com/jira/browse/FM-1544
			// We need to take into account that flv tags' timestamps are 32-bit unsigned ints
			// This means they will roll over, but the bootstrap times won't, since they are 64-bit unsigned ints
			/*while (currentTime < _initialTime)
			{
				// Add 2^32 (4,294,967,296) milliseconds to the currentTime
				// currentTime is in seconds so we divide that by 1000
				currentTime += 4294967.296;
			}*/
			
			if (_playForDuration >= 0)
			{
				if (_initialTime >= 0)	// until we know this, we don't know where to stop, and if we're enhanced-seeking then we need that logic to be what sets this up
				{
					if (currentTime > (_initialTime + _playForDuration))
					{

						if(isNaN(_initialTime))
						{
							_initialTime = currentTime;
						}

						setState(HTTPStreamingState.STOP);
						_flvParserDone = true;
						if (_seekTime < 0)
						{
							_seekTime = _playForDuration + _initialTime;	// FMS behavior... the time is always the final time, even if we seek to past it
							// XXX actually, FMS  actually lets exactly one frame though at that point and that's why the time gets to be what it is
							// XXX that we don't exactly mimic that is also why setting a duration of zero doesn't do what FMS does (plays exactly that one still frame)
						}
						return false;
					}
				}
			}
			
			if (!isNaN(_enhancedSeekTarget))
			{
				if (currentTime < _enhancedSeekTarget)

					// but we need to be careful that this is the first tag of the segment, otherwise we don't know what duration means in relation to the tag timestamp
					
					_flvParserIsSegmentStart = false; // also used by enhanced seek, but not generally set/cleared for everyone. be careful.
					currentTime = (tag.timestamp / 1000.0);
					if (currentTime + _source.fragmentDuration >= (_initialTime + _playForDuration))
					{
						// it stops somewhere in this segment, so we need to keep seeing the tags
