 						potentials.push(cue);
 					}
 				}
-
-				if(potentials.length > 0)
+			}
+
+			if(potentials.length > 0)
+			{
+				// TODO: Add support for trackid
+				cue = potentials[potentials.length - 1];
+				if(cue != _lastCue)
 				{
-					// TODO: Add support for trackid
-					cue = potentials[potentials.length - 1];
-					if(cue != _lastCue)
-					{
-						dispatchEvent(new SubtitleEvent(cue.startTime, cue.text, language));
-
-						_lastInjectedSubtitleTime = cue.startTime;
-						_lastCue = cue;						
-					}
+					dispatchEvent(new SubtitleEvent(cue.startTime, cue.text, language));
+
+					_lastInjectedSubtitleTime = cue.startTime;
+					_lastCue = cue;						
 				}
 			}
+
+			// Force last time so we eventually show proper subtitles.
+			_lastInjectedSubtitleTime = endTime;
+
 		}
 
 		/**

				if ( subtitle.endTime < startTime ) continue;
				var cues:Vector.<TextTrackCue> = subtitle.textTrackCues;
				var cueCount:int = cues.length;
				
				var potentials:Vector.<TextTrackCue> = new Vector.<TextTrackCue>();

				for ( var j:int = 0; j < cueCount; j++ )
				{

		{
			var subtitles:Vector.<SubTitleParser> = activeSubtitles;
			var subtitleCount:int = subtitles.length;
			var potentials:Vector.<TextTrackCue> = new Vector.<TextTrackCue>();

			for ( var i:int = 0; i < subtitleCount; i++ )
			{
