Index: mythtv/programs/mythbackend/scheduler.cpp
===================================================================
--- mythtv/programs/mythbackend/scheduler.cpp	(revision 23865)
+++ mythtv/programs/mythbackend/scheduler.cpp	(working copy)
@@ -827,7 +827,7 @@
     const RecList     &cardlist,
     const RecordingInfo *p,
     RecConstIter      &j,
-    bool               openEnd) const
+    int               openEnd) const
 {
     bool is_conflict_dbg = false;
 
@@ -853,7 +853,8 @@
             continue;
         }
 
-        if (openEnd && p->chanid != q->chanid)
+	// H O O K: Should change openEnd to be a number to indicate off, different channel, or any back to back
+        if ((openEnd == 1 && p->chanid != q->chanid) || openEnd == 2)
         {
             if (p->recendts < q->recstartts || p->recstartts > q->recendts)
             {
@@ -905,7 +906,7 @@
 const RecordingInfo *Scheduler::FindConflict(
     const QMap<int, RecList> &reclists,
     const RecordingInfo        *p,
-    bool openend) const
+    int openend) const
 {
     bool is_conflict_dbg = false;
 
@@ -1122,7 +1123,7 @@
 {
     VERBOSE(VB_SCHEDULE, "Scheduling:");
 
-    bool openEnd = (bool)gContext->GetNumSetting("SchedOpenEnd", 0);
+    int openEnd = gContext->GetNumSetting("SchedOpenEnd", 0);
 
     RecIter i = worklist.begin();
     while (i != worklist.end())
Index: mythtv/programs/mythbackend/scheduler.h
===================================================================
--- mythtv/programs/mythbackend/scheduler.h	(revision 23865)
+++ mythtv/programs/mythbackend/scheduler.h	(working copy)
@@ -114,9 +114,9 @@
 
     bool FindNextConflict(const RecList &cardlist,
                           const RecordingInfo *p, RecConstIter &iter,
-                          bool openEnd = false) const;
+                          int openEnd = 0) const;
     const RecordingInfo *FindConflict(const QMap<int, RecList> &reclists,
-                                    const RecordingInfo *p, bool openEnd = false) const;
+                                    const RecordingInfo *p, int openEnd = 0) const;
     void MarkOtherShowings(RecordingInfo *p);
     void MarkShowingsList(RecList &showinglist, RecordingInfo *p);
     void BackupRecStatus(void);
