 			
 			var elapsed:Number = _segmentLastSeconds - _segmentBeginSeconds;
 			
-			/*if(elapsed <= 0.0 && _extendedIndexHandler)
+			if(elapsed <= 0.0 && _extendedIndexHandler)
 			{
 				elapsed = _extendedIndexHandler.getTargetSegmentDuration(); // XXX fudge hack!
-			}*/
+			}
 			
 			dispatchEvent(new HTTPStreamingEvent(HTTPStreamingEvent.FRAGMENT_DURATION, false, false, elapsed));
 			

			return 0;
		}

		private function basicProcessFileSegment(input:IDataInput, flush:Boolean):ByteArray
		{
			if ( key && !key.isLoaded )

				
				// Set up the IV for our next set of bytes
				_decryptionIV = new ByteArray();
				tmpBuffer.position = bytesToRead - 16;
				tmpBuffer.readBytes( _decryptionIV );
				
				// Aaaaand...decrypt!
				key.decrypt( tmpBuffer, currentIV );
			}
			
			// If it's AAC, process it.
			if(AACParser.probe(tmpBuffer))
			{
				//trace("GOT AAC " + tmpBuffer.bytesAvailable);
				var aac:AACParser = new AACParser();
				aac.parse(tmpBuffer, _fragReadHandler);
				//trace("    - returned " + _fragReadBuffer.length + " bytes!");
				_fragReadBuffer.position = 0;

				if(isBestEffort)
				{
					trace("Discarding data from best effort.");
					_fragReadBuffer.length = 0;
				}

				return _fragReadBuffer;
			}
			
			var buffer:ByteArray = new ByteArray();
			_buffer = buffer;
			_converter.appendBytes(tmpBuffer);
			if ( flush ) _converter.flush();
			_buffer = null;
			buffer.position = 0;
			
			if(isBestEffort)
			{
				trace("Discarding data from best effort.");
				buffer.length = 0;
			}

			return buffer;
		}
		
