diff -u -r -p mythtv.103/libs/libmythtv/mythplayer.cpp mythtv/libs/libmythtv/mythplayer.cpp
--- mythtv.103/libs/libmythtv/mythplayer.cpp	2011-01-23 12:29:34.000000000 +0100
+++ mythtv/libs/libmythtv/mythplayer.cpp	2011-01-24 00:38:49.685409000 +0100
@@ -340,9 +340,9 @@ bool MythPlayer::Pause(void)
     }
     next_play_speed   = 0.0;
     next_normal_speed = false;
-    PauseDecoder();
     PauseVideo();
     audio.Pause(true);
+    PauseDecoder();
     PauseBuffer();
     allpaused = decoderPaused && videoPaused && bufferPaused;
     {
@@ -371,10 +371,10 @@ bool MythPlayer::Play(float speed, bool 
     }
 
     UnpauseBuffer();
+    UnpauseDecoder();
     if (unpauseaudio)
         audio.Pause(false);
     UnpauseVideo();
-    UnpauseDecoder();
     allpaused = false;
     next_play_speed   = speed;
     next_normal_speed = normal;
