 
                 //find idx for next tag not matching with _fragMainLevelNetStream/_fragMainSNNetStream
                 for(var i : int = _videoIdx; i < _videoTags.length ; i++) {
-                    var tagData : FLVData = _videoTags[_videoIdx];
-                    if(tagData.fragLevel != _fragMainSNNetStream ||tagData.fragSN != _fragMainLevelNetStream) {
+                    var tagData : FLVData = _videoTags[i];
+                    if(tagData.fragLevel != _fragMainLevelNetStream ||tagData.fragSN != _fragMainSNNetStream) {
                         CONFIG::LOGGING {
                             Log.debug("first video FLV tag from next frag is @ " + i + " of [" + _videoIdx + "," + (_videoTags.length-1) + "]");
                         }

        private var _fragAltAudioLevel : int, _fragAltAudioSN : int;
        private var _fragAltAudioInitialContinuity : int,_fragAltAudioInitialStartPosition : Number,_fragAltAudioInitialPTS : Number;
        private var _fragMainIdx : uint,  _fragAltAudioIdx : uint;
        /** playlist duration **/
        private var _playlistDuration : Number = 0;
        /** requested start position (absolute position) **/

                }
            }
        };

        private function filternextFragments(item : FLVData, index : int, vector : Vector.<FLVData>) : Boolean {
            // keep if return true
            // we want to keep only if alt audio loader OR
            // index less than start filtering index (i.e. we want to keep backbuffer) OR
            // matching with current fragment appended tags
            return (item.loaderType == HLSLoaderTypes.FRAGMENT_ALTAUDIO ||
                                   index < _filteringStartIdx ||
                                   (item.fragLevel == _fragMainLevelNetStream &&  item.fragSN == _fragMainSNNetStream));
        }

        /**  StreamBuffer Timer, responsible of
         * reporting media time event
