Index: libs/libmythtv/NuppelVideoPlayer.cpp
===================================================================
--- libs/libmythtv/NuppelVideoPlayer.cpp	(revision 13056)
+++ libs/libmythtv/NuppelVideoPlayer.cpp	(working copy)
@@ -1476,6 +1476,8 @@
     {
         msg += decoder->GetTrackDesc(kTrackTypeSubtitle,
                                      GetTrack(kTrackTypeSubtitle));
+        if (ringBuffer->isDVD())
+            ringBuffer->DVD()->SetTrack(kTrackTypeSubtitle, -1);
     }
     if (kDisplayTextSubtitle & mode)
     {
@@ -1507,6 +1509,9 @@
     {
         msg += decoder->GetTrackDesc(kTrackTypeSubtitle,
                                      GetTrack(kTrackTypeSubtitle));
+        if (ringBuffer->isDVD())
+            ringBuffer->DVD()->SetTrack(kTrackTypeSubtitle, 
+                                        GetTrack(kTrackTypeSubtitle));
     }
     if (kDisplayTextSubtitle & mode)
     {
@@ -1610,9 +1615,6 @@
 
     QMutexLocker locker(&decoder_change_lock);
 
-    if (ringBuffer->isDVD() && GetCaptionMode() > 0)
-        ringBuffer->DVD()->SetTrack(kTrackTypeSubtitle, -1);
-
     if (textDisplayMode)
         DisableCaptions(textDisplayMode, origMode & mode);
 
@@ -5958,9 +5960,6 @@
     if (decoder)
         ret = decoder->SetTrack(type, trackNo);
 
-    if (ringBuffer->isDVD())
-        ringBuffer->DVD()->SetTrack(type, trackNo);
-
     if (kTrackTypeSubtitle == type)
     {
         DisableCaptions(textDisplayMode, false);
