Index: mythtv-0.26.0+fixes.20130327.69cd78b/mythtv/libs/libmythtv/dtvsignalmonitor.cpp
===================================================================
--- mythtv-0.26.0+fixes.20130327.69cd78b.orig/mythtv/libs/libmythtv/dtvsignalmonitor.cpp	2013-03-26 17:01:52.000000000 -0700
+++ mythtv-0.26.0+fixes.20130327.69cd78b/mythtv/libs/libmythtv/dtvsignalmonitor.cpp	2013-04-14 12:03:21.669416619 -0700
@@ -537,22 +537,40 @@
 bool DTVSignalMonitor::IsAllGood(void) const
 {
     QMutexLocker locker(&statusLock);
-    if (!SignalMonitor::IsAllGood())
+    DBG_SM("DTVSignalMonitor::IsAllGood", sm_flags_to_string(flags));
+    if (!SignalMonitor::IsAllGood()) {
+        DBG_SM("DTVSignalMonitor::IsAllGood", "!SignalMonitor::IsAllGood()");
         return false;
-    if ((flags & kDTVSigMon_WaitForPAT) && !matchingPAT.IsGood())
-            return false;
-    if ((flags & kDTVSigMon_WaitForPMT) && !matchingPMT.IsGood())
-            return false;
-    if ((flags & kDTVSigMon_WaitForMGT) && !matchingMGT.IsGood())
-            return false;
-    if ((flags & kDTVSigMon_WaitForVCT) && !matchingVCT.IsGood())
-            return false;
-    if ((flags & kDTVSigMon_WaitForNIT) && !matchingNIT.IsGood())
-            return false;
-    if ((flags & kDTVSigMon_WaitForSDT) && !matchingSDT.IsGood())
+    }
+    if ((flags & kDTVSigMon_WaitForPAT) && !matchingPAT.IsGood()) {
+            DBG_SM("DTVSignalMonitor::IsAllGood", "!matchingPAT.IsGood()");
+            return false;
+    }
+    if ((flags & kDTVSigMon_WaitForPMT) && !matchingPMT.IsGood()) {
+            DBG_SM("DTVSignalMonitor::IsAllGood", "!matchingPMT.IsGood()");
+            return false;
+    }
+    if ((flags & kDTVSigMon_WaitForMGT) && !matchingMGT.IsGood()) {
+            DBG_SM("DTVSignalMonitor::IsAllGood", "!matchingMGT.IsGood()");
+            return false;
+    }
+    if ((flags & kDTVSigMon_WaitForVCT) && !matchingVCT.IsGood()) {
+            DBG_SM("DTVSignalMonitor::IsAllGood", "!matchingVCT.IsGood()");
+            return false;
+    }
+    if ((flags & kDTVSigMon_WaitForNIT) && !matchingNIT.IsGood()) {
+            DBG_SM("DTVSignalMonitor::IsAllGood", "!matchingNIT.IsGood()");
+            return false;
+    }
+    if ((flags & kDTVSigMon_WaitForSDT) && !matchingSDT.IsGood()) {
+            DBG_SM("DTVSignalMonitor::IsAllGood", "!matchingSDT.IsGood()");
             return false;
+    }
     if ((flags & kDTVSigMon_WaitForCrypt) && !matchingCrypt.IsGood())
+            DBG_SM("DTVSignalMonitor::IsAllGood", "!matchingCrypt.IsGood()");
             return false;
+    }
 
+    DBG_SM("DTVSignalMonitor::IsAllGood", "Success");
     return true;
 }
Index: mythtv-0.26.0+fixes.20130327.69cd78b/mythtv/libs/libmythtv/hdhrsignalmonitor.cpp
===================================================================
--- mythtv-0.26.0+fixes.20130327.69cd78b.orig/mythtv/libs/libmythtv/hdhrsignalmonitor.cpp	2013-03-26 17:18:25.000000000 -0700
+++ mythtv-0.26.0+fixes.20130327.69cd78b/mythtv/libs/libmythtv/hdhrsignalmonitor.cpp	2013-04-14 12:16:14.272020518 -0700
@@ -113,19 +113,17 @@
     uint sig = status.signal_strength;
     uint snq = status.signal_to_noise_quality;
     uint seq = status.symbol_error_quality;
+    boot_t locked = status.lock_supported;
 
-    (void) snq; // TODO should convert to S/N
-    (void) seq; // TODO should report this...
-
-    LOG(VB_RECORD, LOG_DEBUG, LOC + "Tuner status: " + QString("'%1:%2:%3'")
-            .arg(sig).arg(snq).arg(seq));
+    LOG(VB_RECORD, LOG_DEBUG, LOC + "Tuner status: " + QString("'%1:%2:%3:%4'")
+            .arg(sig).arg(snq).arg(seq).arg(locked));
 
     // Set SignalMonitorValues from info from card.
     bool isLocked = false;
     {
         QMutexLocker locker(&statusLock);
         signalStrength.SetValue(sig);
-        signalLock.SetValue(status.lock_supported);
+        signalLock.SetValue(locked);
         isLocked = signalLock.IsGood();
     }
 
Index: mythtv-0.26.0+fixes.20130327.69cd78b/mythtv/libs/libmythtv/signalmonitor.cpp
===================================================================
--- mythtv-0.26.0+fixes.20130327.69cd78b.orig/mythtv/libs/libmythtv/signalmonitor.cpp	2013-03-26 17:18:26.000000000 -0700
+++ mythtv-0.26.0+fixes.20130327.69cd78b/mythtv/libs/libmythtv/signalmonitor.cpp	2013-04-14 11:58:03.041156522 -0700
@@ -216,14 +216,16 @@
 
 void SignalMonitor::AddFlags(uint64_t _flags)
 {
-    DBG_SM("AddFlags", sm_flags_to_string(_flags));
     flags |= _flags;
+    DBG_SM("AddFlags", QString("%1 == %2").arg(sm_flags_to_string(_flags))
+                                .arg(sm_flags_to_string(flags)));
 }
 
 void SignalMonitor::RemoveFlags(uint64_t _flags)
 {
-    DBG_SM("RemoveFlags", sm_flags_to_string(_flags));
     flags &= ~_flags;
+    DBG_SM("RemoveFlags", QString("%1 == %2").arg(sm_flags_to_string(_flags))
+                                .arg(sm_flags_to_string(flags)));
 }
 
 bool SignalMonitor::HasFlags(uint64_t _flags) const
Index: mythtv-0.26.0+fixes.20130327.69cd78b/mythtv/libs/libmythtv/signalmonitor.h
===================================================================
--- mythtv-0.26.0+fixes.20130327.69cd78b.orig/mythtv/libs/libmythtv/signalmonitor.h	2013-03-26 17:18:26.000000000 -0700
+++ mythtv-0.26.0+fixes.20130327.69cd78b/mythtv/libs/libmythtv/signalmonitor.h	2013-04-14 13:33:10.803139215 -0700
@@ -69,7 +69,10 @@
     bool HasSignalLock(void) const
     {
         QMutexLocker locker(&statusLock);
-        return scriptStatus.IsGood() && signalLock.IsGood();
+        bool s = scriptStatus.IsGood();
+        bool l = signalLock.IsGood();
+        LOG(VB_CHANNEL, LOG_DEBUG, QString("HasSignalLock: scriptStatus:%1 signalLock:%2").arg(s).arg(l));
+        return s && l;
     }
 
     virtual bool IsAllGood(void) const { return HasSignalLock(); }
