 
             if (fragData.metadata_tag_injected == false) {
                 fragData.tags.unshift(_fragCurrent.metadataTag);
+                if (_hasDiscontinuity) {
+                  fragData.tags.unshift(new FLVTag(FLVTag.DISCONTINUITY, fragData.dts_min, fragData.dts_min, false));
+                }
                 fragData.metadata_tag_injected = true;
             }
             // provide tags to HLSNetStream

                if (fragData.tags.length) {
                    if (fragData.metadata_tag_injected == false) {
                        fragData.tags.unshift(_fragCurrent.metadataTag);
                        fragData.metadata_tag_injected = true;
                    }
                    _streamBuffer.appendTags(HLSLoaderTypes.FRAGMENT_ALTAUDIO,_fragCurrent.level,_fragCurrent.seqnum , fragData.tags, fragData.tag_pts_min, fragData.tag_pts_max + fragData.tag_duration, _fragCurrent.continuity, _fragCurrent.start_time + fragData.tag_pts_start_offset / 1000);

        private var _keystreamloader : URLStream;
        /** key map **/
        private var _keymap : Object;
        /** Did a discontinuity occurs in the stream **/
        private var _hasDiscontinuity : Boolean;
        /** Timer used to monitor/schedule fragment download. **/
        private var _timer : Timer;
        /** requested seek position **/
