diff --git a/mythtv/libs/libmythtv/subtitlescreen.cpp b/mythtv/libs/libmythtv/subtitlescreen.cpp
index b7d6534..16671d4 100644
--- a/mythtv/libs/libmythtv/subtitlescreen.cpp
+++ b/mythtv/libs/libmythtv/subtitlescreen.cpp
@@ -204,17 +204,23 @@ void SubtitleScreen::DisplayAVSubtitles(void)
 {
     if (!m_player || !m_subreader)
         return;
+
+    VideoOutput    *videoOut = m_player->GetVideoOutput();
+    VideoFrame *currentFrame = videoOut ? videoOut->GetLastShownFrame() : NULL;
+
+    if (!currentFrame || !videoOut)
+        return;
+
+    // RenderAssTrack moved here so it runs every frame(needed to clear subtitles)
+#ifdef USING_LIBASS
+    RenderAssTrack(currentFrame->timecode);
+#endif
 
     AVSubtitles* subs = m_subreader->GetAVSubtitles();
     QMutexLocker lock(&(subs->lock));
     if (subs->buffers.empty())
         return;
 
-    VideoOutput    *videoOut = m_player->GetVideoOutput();
-    VideoFrame *currentFrame = videoOut ? videoOut->GetLastShownFrame() : NULL;
-
-    if (!currentFrame || !videoOut)
-        return;
 
     float tmp = 0.0;
     QRect dummy;
@@ -339,9 +344,6 @@ void SubtitleScreen::DisplayAVSubtitles(void)
         }
         m_subreader->FreeAVSubtitle(subtitle);
     }
-#ifdef USING_LIBASS
-    RenderAssTrack(currentFrame->timecode);
-#endif
 }
 
 void SubtitleScreen::DisplayTextSubtitles(void)
