--- main.cpp.orig	2007-05-11 12:03:06.000000000 +0100
+++ main.cpp	2007-05-11 12:02:17.000000000 +0100
@@ -451,15 +451,22 @@
     // first of all find out, if this is a frontend only host...
     bool frontendOnly = gContext->IsFrontendOnly();
 
+    // how do you want to quit today?
+    int  exitMenuStyle = gContext->GetNumSetting("OverrideExitMenu", 0);
+
     QString title = QObject::tr("Do you really want to exit MythTV?");
 
     DialogBox diag(gContext->GetMainWindow(), title);
     diag.AddButton(QObject::tr("No"));
-    diag.AddButton(QObject::tr("Yes, Exit now"));
-    if (frontendOnly)
+    if (exitMenuStyle < 3)
+        diag.AddButton(QObject::tr("Yes, Exit now"));
+    if ((exitMenuStyle == 0 && frontendOnly) || 
+        (exitMenuStyle > 1 && exitMenuStyle < 4))
         diag.AddButton(QObject::tr("Yes, Exit and Shutdown"));
 
     int result = diag.exec();
+    if ((exitMenuStyle == 3) && (result == 2))
+        result = 3;
     switch (result)
     {
         case 1: return NO_EXIT;
--- globalsettings.cpp.orig	2007-05-11 12:14:31.000000000 +0100
+++ globalsettings.cpp	2007-05-11 12:22:43.000000000 +0100
@@ -1337,6 +1337,21 @@
     return gc;
 }
 
+static HostComboBox *OverrideExitMenu()
+{
+    HostComboBox *gc = new HostComboBox("OverrideExitMenu");
+    gc->setLabel(QObject::tr("Exit menu style"));
+    gc->addSelection(QObject::tr("Autodetect"), "0");
+    gc->addSelection(QObject::tr("Show quit"), "1");
+    gc->addSelection(QObject::tr("Show quit and shutdown"), "2");
+    gc->addSelection(QObject::tr("Show shutdown"), "3");
+    gc->setHelpText(QObject::tr("MythTV automatically determines which "
+                    "options to show in the exit menu. If you wish, you may "
+                    "force specific options to display, to suit your "
+                    "configuration."));
+    return gc;
+}
+
 static HostCheckBox *NoPromptOnExit()
 {
     HostCheckBox *gc = new HostCheckBox("NoPromptOnExit");
@@ -3374,6 +3389,7 @@
     general->addChild(AllowQuitShutdown());
     general->addChild(NoPromptOnExit());
     general->addChild(HaltCommand());
+    general->addChild(OverrideExitMenu());
     general->addChild(LircKeyPressedApp());
     general->addChild(UseArrowAccels());
     general->addChild(NetworkControlEnabled());
