diff -urN mythtv-0.13.vanilla/libs/libmythtv/tv_rec.cpp mythtv-0.13.livetv_override/libs/libmythtv/tv_rec.cpp
--- mythtv-0.13.vanilla/libs/libmythtv/tv_rec.cpp	2003-11-12 08:45:47.000000000 +0000
+++ mythtv-0.13.livetv_override/libs/libmythtv/tv_rec.cpp	2003-12-20 15:37:15.000000000 +0000
@@ -201,6 +201,8 @@
         VERBOSE(VB_RECORD, "changing state finished, starting now");
     }
 
+    if ((internalState == kState_WatchingLiveTV) && gContext->GetNumSetting("RecPriorityActive") && gContext->GetNumSetting("RecPriorityLiveTVActive") && (rcinfo->recpriority.toInt() < gContext->GetNumSetting("LiveTVRecPriority"))) cancelNextRecording = true;
+
     if (internalState == kState_WatchingLiveTV && !cancelNextRecording)
     {
         QDateTime timeout;
@@ -849,7 +851,7 @@
 
         usleep(1000);
 
-        if (recordPending && askAllowRecording && frontendReady)
+        if (recordPending && askAllowRecording && frontendReady && ((! gContext->GetNumSetting("RecPriorityActive")) || (! gContext->GetNumSetting("RecPriorityLiveTVActive")) || (pendingRecording->recpriority.toInt() >= gContext->GetNumSetting("LiveTVRecPriority"))))
         {
             askAllowRecording = false;
 
diff -urN mythtv-0.13.vanilla/programs/mythfrontend/globalsettings.cpp mythtv-0.13.livetv_override/programs/mythfrontend/globalsettings.cpp
--- mythtv-0.13.vanilla/programs/mythfrontend/globalsettings.cpp	2003-12-10 21:35:46.000000000 +0000
+++ mythtv-0.13.livetv_override/programs/mythfrontend/globalsettings.cpp	2003-12-20 15:32:31.000000000 +0000
@@ -1118,6 +1118,28 @@
 
 // General RecPriorities settings
 
+class GRUseRecPrioritiesLiveTV: public CheckBoxSetting, public BackendSetting {
+public:
+    GRUseRecPrioritiesLiveTV():
+        BackendSetting("RecPriorityLiveTVActive") {
+        setLabel(QObject::tr("LiveTV Override"));
+        setHelpText(QObject::tr("Allow LiveTV to override recordings that have a "
+	            "low recording priority."));
+        setValue(false);
+    };
+};
+
+class GRLiveTVRecPriority: public SpinBoxSetting, public BackendSetting {
+public:
+    GRLiveTVRecPriority():
+        SpinBoxSetting(-99, 99, 1), BackendSetting("LiveTVRecPriority") {
+        setLabel(QObject::tr("LiveTV Priority"));
+        setHelpText(QObject::tr("If LiveTV Override is set then recordings with "
+	            "a priority value lower than this won't interrupt LiveTV."));
+        setValue(0);
+    };
+};
+
 class GRUseRecPriorities: public CheckBoxSetting, public BackendSetting {
 public:
     GRUseRecPriorities():
@@ -1512,6 +1534,8 @@
 
     gr->addChild(new GRUseRecPriorities());
     gr->addChild(new GRRecPrioritiesFirst());
+    gr->addChild(new GRUseRecPrioritiesLiveTV());
+    gr->addChild(new GRLiveTVRecPriority());
     gr->addChild(new GRSingleRecordRecPriority());
     gr->addChild(new GRWeekslotRecordRecPriority());
     gr->addChild(new GRTimeslotRecordRecPriority());
diff -urN mythtv-0.13.vanilla/programs/mythfrontend/viewscheduled.cpp mythtv-0.13.livetv_override/programs/mythfrontend/viewscheduled.cpp
--- mythtv-0.13.vanilla/programs/mythfrontend/viewscheduled.cpp	2003-12-06 00:01:45.000000000 +0000
+++ mythtv-0.13.livetv_override/programs/mythfrontend/viewscheduled.cpp	2003-12-20 15:20:24.000000000 +0000
@@ -350,6 +350,12 @@
                 if (i + skip == curRec)
                     ltype->SetItemCurrent(i);
 
+                if (gContext->GetNumSetting("RecPriorityActive") && gContext->GetNumSetting("RecPriorityLiveTVActive")) {
+		    if (p->recpriority.toInt() < gContext->GetNumSetting("LiveTVRecPriority")) {
+                        ltype->EnableForcedFont(i, "livetvoverriderecording");
+		    };
+		};
+
                 if (p->conflicting)
                     ltype->EnableForcedFont(i, "conflictingrecording");
                 else if (!p->recording)
