                     _timer.stop();
                     seek(-1, _tags_callback);
                     return;
-                } else if (loadstatus > 0) {
+                } else if (loadstatus == LOADING_WAITING) {
                     // seqnum not available in playlist
                     _frag_loading = false;
                 }

                         * in case playlist of new level is outdated
                         * return 1 to retry loading later.
                         */
                        return 1;
                    } else if (last_seqnum == -1) {
                        // if we are here, it means that we have no PTS info for this continuity index, we need to do some PTS probing to find the right seqnum
                        /* we need to perform PTS analysis on fragments from same continuity range

                        // stop loading timer as well, as no other fragments can be loaded
                        _timer.stop();
                    }
                    return LOADING_WAITING;
                } else {
                    // if previous segment is not the last one, increment it to get new seqnum
                    new_seqnum = last_seqnum + 1;
                    if (new_seqnum < _levels[level].start_seqnum) {
                        // we are late ! report to caller
                        return LOADING_OUTDATED;
                    }
                    frag = _levels[level].getFragmentfromSeqNum(new_seqnum);
                    if (frag == null) {
                        CONFIG::LOGGING {
                            Log.warn("error trying to load " + new_seqnum + " of [" + (_levels[level].start_seqnum) + "," + (_levels[level].end_seqnum) + "],level " + level);
                        }
                        return LOADING_WAITING;
                    }
                    // check whether there is a discontinuity between last segment and new segment
                    _hasDiscontinuity = (frag.continuity != frag_previous.continuity);
