Index: libs/libmythtv/tv_play.cpp
===================================================================
--- libs/libmythtv/tv_play.cpp	(revision 9824)
+++ libs/libmythtv/tv_play.cpp	(working copy)
@@ -2249,6 +2249,33 @@
                 .arg(handled).arg(i).arg(actions[i]));
 #endif // DEBUG_ACTIONS
 
+    if (prbuffer->isDVD() && prbuffer->DVD()->IsInMenu())
+    {
+        for (unsigned int i = 0; i < actions.size(); i++)
+        {
+            QString action = actions[i];
+            int nb_buttons = prbuffer->DVD()->NumMenuButtons();
+            if (nb_buttons > 0)
+            {
+                handled = true;
+                if (action == "UP" || action == "CHANNELUP")
+                    prbuffer->DVD()->MoveButtonUp();
+                else if (action == "DOWN" || action == "CHANNELDOWN")
+                    prbuffer->DVD()->MoveButtonDown();
+                else if (action == "LEFT" || action == "SEEKRWND")
+                    prbuffer->DVD()->MoveButtonLeft();
+                else if (action == "RIGHT" || action == "SEEKFFWD")
+                    prbuffer->DVD()->MoveButtonRight();
+                else if (action == "SELECT")
+                    nvp->ActivateDVDButton();
+                else
+                    handled = false;
+            }
+            if (handled)
+                return;
+       }
+    }
+             
     if (handled)
         return;
 
@@ -2257,11 +2284,11 @@
         QString action = actions[i];
         handled = true;
 
-        if (action == "SKIPCOMMERCIAL")
+        if (action == "SKIPCOMMERCIAL" && !prbuffer->isDVD())
             DoSkipCommercials(1);
-        else if (action == "SKIPCOMMBACK")
+        else if (action == "SKIPCOMMBACK" && !prbuffer->isDVD())
             DoSkipCommercials(-1);
-        else if (action == "QUEUETRANSCODE")
+        else if (action == "QUEUETRANSCODE" && !prbuffer->isDVD())
             DoQueueTranscode("Default");
         else if (action == "QUEUETRANSCODE_AUTO")
             DoQueueTranscode("Autodetect");
@@ -2275,9 +2302,9 @@
             DoPlay();
         else if (action == "PAUSE") 
             DoPause();
-        else if (action == "SPEEDINC")
+        else if (action == "SPEEDINC" && !prbuffer->InDVDMenuOrStillFrame())
             ChangeSpeed(1);
-        else if (action == "SPEEDDEC")
+        else if (action == "SPEEDDEC" && !prbuffer->InDVDMenuOrStillFrame())
             ChangeSpeed(-1);
         else if (action == "ADJUSTSTRETCH")
             ChangeTimeStretch(0);   // just display
@@ -2428,7 +2455,7 @@
                 DoSeek(jumptime * 60, tr("Jump Ahead"));
             }
         }
-        else if (action == "JUMPBKMRK")
+        else if (action == "JUMPBKMRK" && !prbuffer->isDVD())
         {
             int bookmark = activenvp->GetBookmark();
             if (bookmark > frameRate)
@@ -2736,25 +2763,8 @@
             QString action = actions[i];
             handled = true;
 
-            if (prbuffer->InDVDMenuOrStillFrame())
+            if (action == "DELETE" && !prbuffer->isDVD())
             {
-                int nb_buttons = prbuffer->DVD()->NumMenuButtons();
-                if (nb_buttons > 0)
-                {
-                    if (action == "UP" || action == "CHANNELUP")
-                        prbuffer->DVD()->MoveButtonUp();
-                    else if (action == "DOWN" || action == "CHANNELDOWN")
-                        prbuffer->DVD()->MoveButtonDown();
-                    else if (action == "LEFT" || action == "SEEKRWND")
-                        prbuffer->DVD()->MoveButtonLeft();
-                    else if (action == "RIGHT" || action == "SEEKFFWD")
-                        prbuffer->DVD()->MoveButtonRight();
-                    else if (action == "SELECT")
-                        nvp->ActivateDVDButton();
-                }
-            }
-            else if (action == "DELETE")
-            {
                 NormalSpeed();
                 StopFFRew();
                 nvp->SetBookmark(); 
@@ -2765,13 +2775,13 @@
             }
             else if (action == "JUMPTODVDROOTMENU")
                 nvp->GoToDVDMenu("menu");
-            else if (action == "GUIDE")
+            else if (action == "GUIDE" && !prbuffer->isDVD())
                 EditSchedule(kScheduleProgramGuide);
-            else if (action == "FINDER")
+            else if (action == "FINDER" && !prbuffer->isDVD())
                 EditSchedule(kScheduleProgramFinder);
-            else if (action == "TOGGLEEDIT")
+            else if (action == "TOGGLEEDIT" && !prbuffer->isDVD())
                 StartProgramEditMode();
-            else if (action == "TOGGLEBROWSE")
+            else if (action == "TOGGLEBROWSE" && !prbuffer->isDVD())
                 ShowOSDTreeMenu();
             else if (action == "CHANNELUP")
             {
