Index: libs/libmyth/dbutil.cpp
===================================================================
--- libs/libmyth/dbutil.cpp.orig	2008-05-05 14:22:42.000000000 -0400
+++ libs/libmyth/dbutil.cpp	2008-05-05 14:32:33.000000000 -0400
@@ -182,6 +182,12 @@
         return true;
     }
 
+    if (gContext->GetNumSetting("DisableAutomaticBackup", 0))
+    {
+        VERBOSE(VB_IMPORTANT, "Database backups disabled.  Skipping backup.");
+        return true;
+    }
+
     bool result = false;
     MSqlQuery query(MSqlQuery::InitCon());
 
Index: programs/mythtv-setup/backendsettings.cpp
===================================================================
--- programs/mythtv-setup/backendsettings.cpp.orig	2008-05-05 14:22:08.000000000 -0400
+++ programs/mythtv-setup/backendsettings.cpp	2008-05-05 14:29:13.000000000 -0400
@@ -165,6 +165,18 @@
     return bs;
 }
 
+static GlobalCheckBox *DisableAutomaticBackup()
+{
+    GlobalCheckBox *gc = new GlobalCheckBox("DisableAutomaticBackup");
+    gc->setLabel(QObject::tr("Disable Automatic Database Backup"));
+    gc->setValue(false);
+    gc->setHelpText(QObject::tr("This will prevent Myth from backing up the "
+                                "database before upgrades.  If disabled, "
+                                "you should have your own backup strategy "
+                                "in place."));
+    return gc;
+};
+
 static HostCheckBox *DisableFirewireReset()
 {
     HostCheckBox *hc = new HostCheckBox("DisableFirewireReset");
@@ -721,6 +733,7 @@
     fm->addChild(HDRingbufferSize());
     group2->addChild(fm);
     group2->addChild(MiscStatusScript());
+    group2->addChild(DisableAutomaticBackup());
     group2->addChild(DisableFirewireReset());
     addChild(group2);
 
