 			}
 
 			// Add to the queue, marking if we need to resort.
-			if(pendingTags.length > 0 
+			if(!needPendingSort 
+				&& pendingTags.length > 0 
 				&& (wrapTagTimestampToFLVTimestamp(tag.timestamp) 
 					- wrapTagTimestampToFLVTimestamp(pendingTags[pendingTags.length-1].timestamp)) <= 0)
 			{

						}

						appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK);
						_initialTime = NaN;
					}

					// Drop through to let tag be added.

			while((super.bufferLength <= (bufferFeedMin + bufferFeedAmount) || _wasBufferEmptied)
			      && (pendingTags.length - curTagOffset) > 0)
			{
				if(curTagOffset > 100 && _wasBufferEmptied)
				{
					trace("Avoiding loading entire pending tag list when dealing with an empty buffer event scenario.");
					break;
				}

				// Append some tags, using utility function to ensure we get tags
				// always in right priority order when they occur at same time.
				var tag:FLVTag = extractNextTagToWriteToBuffer(curTagOffset);
