          * The point in timeline where the buffered data region ends, in seconds.
          */
         public function get bufferEnd() : Number {
-            return _hls.position + _hls.stream.bufferLength;
+            var _buffer : Number = Math.max(0, _hls.position + _hls.stream.bufferLength);
+            return _buffer;
         }
 
         /**

         */
        public function seek(event : ClipEvent, seconds : Number) : void {
            CONFIG::LOGGING {
                Log.info("seek()");
            }
            _hls.stream.seek(seconds);
            _clip.dispatch(ClipEventType.SEEK, seconds);
            return;
        }


         * Current playhead time in seconds.
         */
        public function get time() : Number {
            var _time : Number = Math.max(0, _hls.position);
            return _time;
        }

        /**
