Index: i18n/mythfrontend_de.ts
===================================================================
--- i18n/mythfrontend_de.ts	(Revision 18935)
+++ i18n/mythfrontend_de.ts	(Arbeitskopie)
@@ -7370,6 +7370,19 @@
         <translation>es war markiert als &quot;Niemals aufnehmen&quot;.</translation>
     </message>
     <message>
+        <source>A</source>
+        <comment>RecStatusChar rsNotAllowed</comment>
+        <translation>A</translation>
+    </message>
+    <message>
+        <source>Not Allowed</source>
+        <translation>Nicht erlaubt</translation>
+    </message>
+    <message>
+        <source>this recording is not allowed on this channel.</source>
+        <translation>diese Aufnahme ist auf diesem Kanal nicht erlaubt.</translation>
+    </message>
+    <message>
         <source>Channel Separator</source>
         <translation type="obsolete">Trennzeichen für Sender (bei ATSC)</translation>
     </message>
Index: libs/libmythtv/programinfo.h
===================================================================
--- libs/libmythtv/programinfo.h	(Revision 18935)
+++ libs/libmythtv/programinfo.h	(Arbeitskopie)
@@ -129,7 +129,8 @@
     rsInactive = 10,
     rsNeverRecord = 11,
     rsOffLine = 12,
-    rsOtherShowing = 13
+    rsOtherShowing = 13,
+    rsNotAllowed = 14
 };
 
 enum AvailableStatusType {
Index: libs/libmythtv/programinfo.cpp
===================================================================
--- libs/libmythtv/programinfo.cpp	(Revision 18935)
+++ libs/libmythtv/programinfo.cpp	(Arbeitskopie)
@@ -3298,6 +3298,8 @@
         return QObject::tr("F", "RecStatusChar rsOffLine");
     case rsOtherShowing:
         return QObject::tr("O", "RecStatusChar rsOtherShowing");
+    case rsNotAllowed:
+        return QObject::tr("A", "RecStatusChar rsNotAllowed");
     default:
         return "-";
     }
@@ -3358,6 +3360,8 @@
             return QObject::tr("Recorder Off-Line");
         case rsOtherShowing:
             return QObject::tr("Other Showing");
+        case rsNotAllowed:
+            return QObject::tr("Not Allowed");
         default:
             return QObject::tr("Unknown");
         }
@@ -3471,6 +3475,9 @@
             message += QObject::tr("this episode will be recorded on a "
                                    "different channel in this time slot.");
             break;
+        case rsNotAllowed:
+            message += QObject::tr("this recording is not allowed on this channel.");
+            break;            
         default:
             message += QObject::tr("you should never see this.");
             break;
@@ -4591,6 +4598,7 @@
              recstatus == rsEarlierShowing ||
              recstatus == rsOtherShowing ||
              recstatus == rsNeverRecord ||
+             recstatus == rsNotAllowed ||
              recstatus == rsRepeat ||
              recstatus == rsInactive ||
              recstatus == rsLaterShowing))
@@ -4610,6 +4618,7 @@
                 recstatus != rsPreviousRecording &&
                 recstatus != rsCurrentRecording &&
                 recstatus != rsNeverRecord &&
+                recstatus != rsNotAllowed &&
                 recstatus != rsNotListed)
             {
                 if (recstartts > now)
Index: programs/mythbackend/scheduler.cpp
===================================================================
--- programs/mythbackend/scheduler.cpp	(Revision 18935)
+++ programs/mythbackend/scheduler.cpp	(Arbeitskopie)
@@ -2798,7 +2798,7 @@
 "RECTABLE.dupin, "
 "recduplicate, "
 "findduplicate, "
-"RECTABLE.type, RECTABLE.recordid, "
+"RECTABLE.type, RECTABLE.recordid, RECTABLE.search, "
 "program.starttime - INTERVAL RECTABLE.startoffset minute AS recstartts, "
 "program.endtime + INTERVAL RECTABLE.endoffset minute AS recendts, "
 "program.previouslyshown, RECTABLE.recgroup, RECTABLE.dupmethod, "
@@ -2854,8 +2854,8 @@
     while (result.next())
     {
         ProgramInfo *p = new ProgramInfo;
-        p->reactivate = result.value(38).toInt();
-        p->oldrecstatus = RecStatusType(result.value(37).toInt());
+        p->reactivate = result.value(39).toInt();
+        p->oldrecstatus = RecStatusType(result.value(38).toInt());
         if (p->oldrecstatus == rsAborted || p->reactivate)
             p->recstatus = rsUnknown;
         else
@@ -2874,46 +2874,46 @@
         p->category = result.value(11).toString();
         p->recpriority = result.value(12).toInt();
         p->dupin = RecordingDupInType(result.value(13).toInt());
-        p->dupmethod = RecordingDupMethodType(result.value(22).toInt());
+        p->dupmethod = RecordingDupMethodType(result.value(23).toInt());
         p->rectype = RecordingType(result.value(16).toInt());
         p->recordid = result.value(17).toInt();
 
-        p->recstartts = result.value(18).toDateTime();
-        p->recendts = result.value(19).toDateTime();
-        p->repeat = result.value(20).toInt();
-        p->recgroup = result.value(21).toString();
-        p->storagegroup = result.value(42).toString();
-        p->playgroup = result.value(36).toString();
-        p->chancommfree = COMM_DETECT_COMMFREE == result.value(23).toInt();
-        p->hostname = result.value(43).toString();
-        p->cardid = result.value(24).toInt();
-        p->inputid = result.value(25).toInt();
-        p->shareable = result.value(26).toInt();
-        p->seriesid = result.value(27).toString();
-        p->programid = result.value(28).toString();
-        p->catType = result.value(29).toString();
-        p->year = result.value(30).toString();
-        p->stars =  result.value(31).toDouble();
+        p->recstartts = result.value(19).toDateTime();
+        p->recendts = result.value(20).toDateTime();
+        p->repeat = result.value(21).toInt();
+        p->recgroup = result.value(22).toString();
+        p->storagegroup = result.value(43).toString();
+        p->playgroup = result.value(37).toString();
+        p->chancommfree = COMM_DETECT_COMMFREE == result.value(24).toInt();
+        p->hostname = result.value(44).toString();
+        p->cardid = result.value(25).toInt();
+        p->inputid = result.value(26).toInt();
+        p->shareable = result.value(27).toInt();
+        p->seriesid = result.value(28).toString();
+        p->programid = result.value(29).toString();
+        p->catType = result.value(30).toString();
+        p->year = result.value(31).toString();
+        p->stars =  result.value(32).toDouble();
 
-        if (result.value(32).isNull())
+        if (result.value(33).isNull())
         {
             p->originalAirDate = QDate (0, 1, 1);
             p->hasAirDate = false;
         }
         else
         {
-            p->originalAirDate = QDate::fromString(result.value(32).toString(), Qt::ISODate);
+            p->originalAirDate = QDate::fromString(result.value(33).toString(), Qt::ISODate);
             p->hasAirDate = true;
         }
 
-        bool inactive = result.value(33).toInt();
-        p->parentid = result.value(34).toInt();
-        p->findid = result.value(35).toInt();
+        bool inactive = result.value(34).toInt();
+        p->parentid = result.value(35).toInt();
+        p->findid = result.value(36).toInt();
 
 
-        p->videoproperties = result.value(39).toInt();
-        p->subtitleType = result.value(40).toInt();
-        p->audioproperties = result.value(41).toInt();
+        p->videoproperties = result.value(40).toInt();
+        p->subtitleType = result.value(41).toInt();
+        p->audioproperties = result.value(42).toInt();
 
         if (!recTypeRecPriorityMap.contains(p->rectype))
             recTypeRecPriorityMap[p->rectype] =
@@ -2922,9 +2922,9 @@
 
         if (autopriority)
             p->recpriority += autopriority -
-                              (result.value(45).toInt() * autostrata / 200);
+                              (result.value(46).toInt() * autostrata / 200);
 
-        p->recpriority2 = result.value(46).toInt();
+        p->recpriority2 = result.value(47).toInt();
 
         if (complexpriority == 0)
         {
@@ -2970,6 +2970,10 @@
         if ((threadrunning || specsched) && !cardMap.contains(p->cardid))
             p->recstatus = rsOffLine;
 
+        // Check for rsNotAllowed
+        if (result.value(18).toInt() != kNoSearch && p->recpriority <= -500)
+            p->recstatus = rsNotAllowed;
+
         // Check for rsTooManyRecordings
         if (checkTooMany && tooManyMap[p->recordid] && !p->reactivate)
             p->recstatus = rsTooManyRecordings;
@@ -2989,7 +2993,7 @@
 
             if ((p->dupin & kDupsInOldRecorded) && result.value(10).toInt())
             {
-                if (result.value(44).toInt() == rsNeverRecord)
+                if (result.value(46).toInt() == rsNeverRecord)
                     p->recstatus = rsNeverRecord;
                 else
                     p->recstatus = rsPreviousRecording;

