Index: mythplugins/mythmusic/mythmusic/playbackbox.cpp
===================================================================
--- mythplugins/mythmusic/mythmusic/playbackbox.cpp	(revision 8217)
+++ mythplugins/mythmusic/mythmusic/playbackbox.cpp	(working copy)
@@ -48,7 +48,7 @@
     progress = NULL;
     
     lcd_volume_visible = false; 
-    isplaying = false;
+    state = IDLE;
     tree_is_done = false;
     first_playlist_check = true;
     outputBufferSize = 256;
@@ -295,7 +295,7 @@
         }
         else if (action == "PAUSE")
         { 
-            if (isplaying)
+            if (isPlaying() || isPaused())
             {
                 if (pause_button)
                     pause_button->push();
@@ -1036,7 +1050,7 @@
 
 void PlaybackBoxMusic::play()
 {
-    if (isplaying)
+    if (isPlaying())
         stop();
 
     if (curMeta)
@@ -1107,7 +1121,7 @@
 
         decoder->start();
 
-        isplaying = true;
+        state = PLAYING;
         curMeta->setLastPlay();
         curMeta->incPlayCount();    
     }
@@ -1115,7 +1129,7 @@
 
 void PlaybackBoxMusic::visEnable()
 {
-    if (!visualizer_status != 2 && isplaying)
+    if (!visualizer_status != 2 && isPlaying())
     {
         setUpdatesEnabled(false);
         mainvisual->setGeometry(0, 0, screenwidth, screenheight);
@@ -1199,8 +1213,12 @@
 {
     if (output) 
     {
-        isplaying = !isplaying;
-        output->Pause(!isplaying); //Note pause doesn't take effet instantly
+        if (isPlaying())
+            state = PAUSED;
+        else if (isPaused())
+            state = PLAYING;
+
+        output->Pause(isPaused()); //Note pause doesn't take effet instantly
     }
     // wake up threads
     if (decoder) 
@@ -1262,7 +1280,7 @@
     if (info_text)
         info_text->SetText("");
 
-    isplaying = false;
+    state = IDLE;
 }
 
 void PlaybackBoxMusic::stopAll()
@@ -1326,7 +1344,7 @@
 {
     stopDecoder();
 
-    isplaying = false;
+    state = IDLE;
 
     if (repeatmode == REPEAT_TRACK)
         play();
@@ -1427,7 +1445,7 @@
         music_tree_list->setVisualOrdering(1);
     music_tree_list->refresh();
     
-    if (isplaying)
+    if (isPlaying())
         setTrackOnLCD(curMeta);
 }
 
Index: mythplugins/mythmusic/mythmusic/playbackbox.h
===================================================================
--- mythplugins/mythmusic/mythmusic/playbackbox.h	(revision 8217)
+++ mythplugins/mythmusic/mythmusic/playbackbox.h	(working copy)
@@ -142,7 +142,16 @@
     unsigned int shufflemode;
     unsigned int repeatmode;
 
-    bool isplaying;
+    typedef enum State {
+        IDLE,
+        PLAYING,
+        PAUSED
+	};
+    State state;
+
+    bool isPlaying(void) { return state == PLAYING; }
+    bool isPaused(void) { return state == PAUSED; }
+
     bool lcd_volume_visible;
 
     bool menufilters;
