 		 */
 		private function keepBufferFed():void
 		{
-			updateBufferTime();
-
 			// Check the actual amount of content present.
 			if(super.bufferLength >= bufferFeedMin && !_wasBufferEmptied)
 			{
+				CONFIG::LOGGING
+				{
+					logger.debug("Saw super.bufferLength " + super.bufferLength + " < " + bufferFeedMin);
+				}
 				return;
 			}
 
 			// Sort as needed.
 			ensurePendingSorted();
+
+			updateBufferTime();
 
 			// We want to keep the actual required buffer short so we don't stall with
 			// tags still pending.

				// Look for malformed tags.
				if(expectedSize != buffer.length)
				{
					trace("SAW BAD PACKET, IGNORING?! Size mismatch: " + expectedSize + " != " + buffer.length);
					continue;
				}

				var tagTimeSeconds:Number = wrapTagTimestampToFLVTimestamp(tag.timestamp) / 1000;

				// If it's more than 0.5 second jump ahead of current playhead, insert a RESET_SEEK so we won't stall forever.
				var tagDelta:Number = Math.abs(tagTimeSeconds - lastWrittenTime)
				if(tagDelta > bufferFeedMin + bufferFeedAmount * 2 || isNaN(tagDelta))
				{
					// Don't do this for script tags, as they sometimes show up in weird orders.
					CONFIG::LOGGING
					{
						logger.debug("Inserting RESET_SEEK due to " + tagDelta + " being bigger than  " + (bufferFeedMin + bufferFeedAmount * 2));
					}
					appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK);						
				}

				lastWrittenTime = tagTimeSeconds;

				{
					scanningForIFrame = true;

					// Note for later use when we splice.
					if(isTagAVCC(vTag))
						scanningForIFrame_avcc = vTag;

					CONFIG::LOGGING
					{
						logger.debug("   - I-FRAME SCAN and reject due to impossible time (" + realTimestamp + " < " + wrapTagTimestampToFLVTimestamp(pendingTags[0].timestamp) + ")");
					}
					
					return true;
				}

				// Skip until we find our I-frame.
