Index: mythmusic/mythmusic/playbackbox.h
===================================================================
--- mythmusic/mythmusic/playbackbox.h	(revision 16486)
+++ mythmusic/mythmusic/playbackbox.h	(working copy)
@@ -173,6 +173,8 @@
     bool keyboard_accelerators;
     bool volume_control;
 
+    QString exit_action;
+
     MythPopupBox *playlist_popup;
 
     //
Index: mythmusic/mythmusic/playbackbox.cpp
===================================================================
--- mythmusic/mythmusic/playbackbox.cpp	(revision 16486)
+++ mythmusic/mythmusic/playbackbox.cpp	(working copy)
@@ -84,6 +84,7 @@
     cycle_visualizer = gContext->GetNumSetting("VisualCycleOnSongChange", 0);
     show_album_art = gContext->GetNumSetting("VisualAlbumArtOnSongChange", 0);
     random_visualizer = gContext->GetNumSetting("VisualRandomize", 0);
+    exit_action = gContext->GetSetting("MusicExitAction", "prompt");
 
     m_pushedButton = NULL;
 
@@ -377,20 +378,37 @@
         {
             if (!gPlayer->isPlaying() || m_parent->IsExitingToMain())
             {
-                gPlayer->savePosition();
-                stopAll();
-                done(kDialogCodeAccepted);
+                if (exit_action == "play")
+                {
+                    gPlayer->setListener(NULL);
+                    gPlayer->setVisual(NULL);
+                    done(kDialogCodeAccepted);
+                }
+                else
+                {
+                    gPlayer->savePosition();
+                    stopAll();
+                    done(kDialogCodeAccepted);
+                };
             }
             else
             {
-                DialogBox *dialog = new DialogBox(gContext->GetMainWindow(),
-                                tr("Exiting Music Player\n"
-                                    "Do you want to continue playing in the background?"));
-                dialog->AddButton(tr("No - Exit, Stop Playing"));
-                dialog->AddButton(tr("Yes - Exit, Continue Playing"));
-                dialog->AddButton(tr("Cancel"));
-                int res = dialog->exec();
-                dialog->deleteLater();
+                int res;
+                if (exit_action == "stop")
+                    res = kDialogCodeButton0;
+                else if (exit_action == "play")
+                    res = kDialogCodeButton1;
+                else
+                {
+                        DialogBox *dialog = new DialogBox(gContext->GetMainWindow(),
+                                    tr("Exiting Music Player\n"
+                                        "Do you want to continue playing in the background?"));
+                        dialog->AddButton(tr("No - Exit, Stop Playing"));
+                        dialog->AddButton(tr("Yes - Exit, Continue Playing"));
+                        dialog->AddButton(tr("Cancel"));
+                        res = dialog->exec();
+                        dialog->deleteLater();
+                };
 
                 if (res == kDialogCodeButton0)
                 {
Index: mythmusic/mythmusic/globalsettings.cpp
===================================================================
--- mythmusic/mythmusic/globalsettings.cpp	(revision 16486)
+++ mythmusic/mythmusic/globalsettings.cpp	(working copy)
@@ -377,6 +377,17 @@
     return gc;
 };
 
+static HostComboBox *ExitAction()
+{
+    HostComboBox *gc = new HostComboBox("MusicExitAction");
+    gc->setLabel(QObject::tr("Action on exit"));
+    gc->addSelection(QObject::tr("Prompt"), "prompt");
+    gc->addSelection(QObject::tr("Stop Playing"), "stop");
+    gc->addSelection(QObject::tr("Keep Playing"), "play");
+    gc->setHelpText(QObject::tr("Specify what action to take when exiting mythmusic plugin."));
+    return gc;
+};
+
 static HostSlider *VisualModeDelay()
 {
     HostSlider *gc = new HostSlider("VisualModeDelay", 0, 100, 1);
@@ -637,6 +648,7 @@
     playersettings->setLabel(QObject::tr("Playback Settings"));
     playersettings->addChild(PlayMode());
     playersettings->addChild(ResumeMode());
+    playersettings->addChild(ExitAction());
     playersettings->addChild(SetSearchMaxResultsReturned());
     playersettings->addChild(UseShowRatings());
     playersettings->addChild(UseShowWholeTree());

