diff --git a/mythtv/libs/libmythtv/tv_play.cpp b/mythtv/libs/libmythtv/tv_play.cpp
index e8d0c2d..1efac5b 100644
--- a/mythtv/libs/libmythtv/tv_play.cpp
+++ b/mythtv/libs/libmythtv/tv_play.cpp
@@ -8445,6 +8445,7 @@ void TV::customEvent(QEvent *e)
         }
 
         SetExitPlayer(true, true);
+        mctx->player->DisableEdit(-1);
         ReturnPlayerLock(mctx);
     }
 
diff --git a/mythtv/libs/libmythui/mythmainwindow.cpp b/mythtv/libs/libmythui/mythmainwindow.cpp
index 121f4c2..9093f6b 100644
--- a/mythtv/libs/libmythui/mythmainwindow.cpp
+++ b/mythtv/libs/libmythui/mythmainwindow.cpp
@@ -1313,6 +1313,8 @@ void MythMainWindow::ExitToMainMenu(void)
     MythScreenStack *toplevel = GetMainStack();
     if (toplevel && d->popwindows)
     {
+        MythEvent xe("EXIT_TO_MENU");
+        gCoreContext->dispatch(xe);
         MythScreenType *screen = toplevel->GetTopScreen();
         if (screen && screen->objectName() != QString("mainmenu"))
         {
diff --git a/mythtv/programs/mythfrontend/playbackbox.cpp b/mythtv/programs/mythfrontend/playbackbox.cpp
index 93f2a56..00e1f5e 100644
--- a/mythtv/programs/mythfrontend/playbackbox.cpp
+++ b/mythtv/programs/mythfrontend/playbackbox.cpp
@@ -4082,6 +4082,10 @@ void PlaybackBox::customEvent(QEvent *event)
                 m_artTimer[(uint)type]->start(s_artDelay[(uint)type]);
             }
         }
+        else if (message == "EXIT_TO_MENU")
+        {
+            m_playListPlay.clear();
+        }
     }
     else
         ScheduleCommon::customEvent(event);
