         /** has manifest just being reloaded **/
         private var _manifest_just_loaded : Boolean;
         /** last loaded level. **/
-        private var _last_loaded_level : int;
+        private var _level_last_loaded : int;
+        /** next level (-1 if not defined yet) **/
+        private var _level_next : int;
         /** Reference to the manifest levels. **/
         private var _levels : Vector.<Level>;
         /** Util for loading the fragment. **/

                        // Log.info("seq/next:"+ _seqnum+"/"+ next_seqnum);
                        // }
                        if (next_seqnum != _frag_current.seqnum) {
                            _pts_just_analyzed = true;
                            CONFIG::LOGGING {
                                Log.debug("PTS analysis done on " + _frag_current.seqnum + ", matching seqnum is " + next_seqnum + " of [" + (_levels[_hls.level].start_seqnum) + "," + (_levels[_hls.level].end_seqnum) + "],cancel loading and get new one");
                            }

                    // check if first fragment after seek has been already loaded
                    if (_fragment_first_loaded == false) {
                        // select level for first fragment load
                        if(_level_next != -1) {
                            level = _level_next;
                        } else if (_hls.autolevel) {
                            if (_manifest_just_loaded) {
                                level = _hls.startlevel;
                            } else {
