diff --git a/mythtv/libs/libmythtv/eitscanner.cpp b/mythtv/libs/libmythtv/eitscanner.cpp
index 677feddab8..e707600365 100644
--- a/mythtv/libs/libmythtv/eitscanner.cpp
+++ b/mythtv/libs/libmythtv/eitscanner.cpp
@@ -283,18 +283,30 @@ void EITScanner::StartActiveScan(TVRec *_rec, uint max_seconds_per_source)
 
 void EITScanner::StopActiveScan(void)
 {
+    LOG(VB_EIT, LOG_INFO,
+        LOC_ID + QString("##StopActiveScan() entering"));
     QMutexLocker locker(&lock);
+    LOG(VB_EIT, LOG_INFO,
+        LOC_ID + QString("##StopActiveScan() locked"));
 
     activeScanStopped = false;
     activeScan = false;
     exitThreadCond.wakeAll();
+    LOG(VB_EIT, LOG_INFO,
+        LOC_ID + QString("##StopActiveScan() woke all"));
 
     locker.unlock();
+    LOG(VB_EIT, LOG_INFO,
+        LOC_ID + QString("##StopActiveScan() unlocked"));
     StopPassiveScan();
     locker.relock();
+    LOG(VB_EIT, LOG_INFO,
+        LOC_ID + QString("##StopActiveScan() relocked"));
 
     while (!activeScan && !activeScanStopped)
         activeScanCond.wait(&lock, 100);
 
+    LOG(VB_EIT, LOG_INFO,
+        LOC_ID + QString("##StopActiveScan() finished"));
     rec = NULL;
 }
diff --git a/mythtv/libs/libmythtv/recorders/dvbchannel.cpp b/mythtv/libs/libmythtv/recorders/dvbchannel.cpp
index dbdf7adc11..2215c0ecff 100644
--- a/mythtv/libs/libmythtv/recorders/dvbchannel.cpp
+++ b/mythtv/libs/libmythtv/recorders/dvbchannel.cpp
@@ -145,11 +145,14 @@ DVBChannel::~DVBChannel()
 
 void DVBChannel::Close(DVBChannel *who)
 {
-    LOG(VB_CHANNEL, LOG_INFO, LOC + "Closing DVB channel");
+    LOG(VB_CHANNEL, LOG_INFO, LOC + "##Closing DVB channel");
 
     IsOpenMap::iterator it = is_open.find(who);
     if (it == is_open.end())
+    {
+        LOG(VB_CHANNEL, LOG_INFO, LOC + "  ##Not open");
         return; // this caller didn't have it open in the first place..
+    }
 
     is_open.erase(it);
 
@@ -163,12 +166,16 @@ void DVBChannel::Close(DVBChannel *who)
         master->Close(this);
         fd_frontend = -1;
         ReturnMasterLock(master);
+        LOG(VB_CHANNEL, LOG_INFO, LOC + "  ##master->Close9) succeeded");
         return;
     }
     ReturnMasterLock(master); // if we're the master we don't need this lock..
 
     if (!is_open.empty())
+    {
+        LOG(VB_CHANNEL, LOG_INFO, LOC + "  ##still has other callers");
         return; // not all callers have closed the DVB channel yet..
+    }
 
     if (diseqc_tree)
         diseqc_tree->Close();
@@ -180,22 +187,27 @@ void DVBChannel::Close(DVBChannel *who)
 
         dvbcam->Stop();
     }
+    LOG(VB_CHANNEL, LOG_INFO, LOC + "##Succeeded");
 }
 
 bool DVBChannel::Open(DVBChannel *who)
 {
-    LOG(VB_CHANNEL, LOG_INFO, LOC + "Opening DVB channel");
+    LOG(VB_CHANNEL, LOG_INFO, LOC + "##Opening DVB channel");
 
     if (!m_inputid)
     {
         if (!InitializeInput())
+        {
+            LOG(VB_CHANNEL, LOG_INFO, LOC + "  ##InitializeInput() failed");
             return false;
+        }
     }
 
     QMutexLocker locker(&hw_lock);
 
     if (fd_frontend >= 0)
     {
+        LOG(VB_CHANNEL, LOG_INFO, LOC + "  ##fd_frontend already set");
         is_open[who] = true;
         return true;
     }
@@ -205,6 +217,7 @@ bool DVBChannel::Open(DVBChannel *who)
     {
         if (!master->Open(who))
         {
+            LOG(VB_CHANNEL, LOG_INFO, LOC + "  ##master->Open() failed");
             ReturnMasterLock(master);
             return false;
         }
@@ -223,11 +236,13 @@ bool DVBChannel::Open(DVBChannel *who)
 
         if (!InitializeInput())
         {
+            LOG(VB_CHANNEL, LOG_INFO, LOC + "  ##InitializeInput2() failed");
             Close();
             ReturnMasterLock(master);
             return false;
         }
 
+        LOG(VB_CHANNEL, LOG_INFO, LOC + "  ##InitializeInput2() succedded");
         ReturnMasterLock(master);
         return true;
     }
@@ -242,11 +257,11 @@ bool DVBChannel::Open(DVBChannel *who)
         if (fd_frontend >= 0)
             break;
         LOG(VB_GENERAL, LOG_WARNING, LOC +
-            "Opening DVB frontend device failed." + ENO);
+            "  ##Opening DVB frontend device failed." + ENO);
         if (tries >= 20 || (errno != EBUSY && errno != EAGAIN))
         {
             LOG(VB_GENERAL, LOG_ERR, LOC +
-                QString("Failed to open DVB frontend device due to "
+                QString("  ##Failed to open DVB frontend device due to "
                         "fatal error or too many attempts."));
             return false;
         }
@@ -258,7 +273,7 @@ bool DVBChannel::Open(DVBChannel *who)
     if (ioctl(fd_frontend, FE_GET_INFO, &info) < 0)
     {
         LOG(VB_GENERAL, LOG_ERR, LOC +
-            "Failed to get frontend information." + ENO);
+            "  ##Failed to get frontend information." + ENO);
 
         close(fd_frontend);
         fd_frontend = -1;
@@ -312,6 +327,7 @@ bool DVBChannel::Open(DVBChannel *who)
 
     if (!InitializeInput())
     {
+        LOG(VB_CHANNEL, LOG_INFO, LOC + "  ##InitializeInput3() failed");
         Close();
         return false;
     }
@@ -319,6 +335,7 @@ bool DVBChannel::Open(DVBChannel *who)
     if (fd_frontend >= 0)
         is_open[who] = true;
 
+    LOG(VB_CHANNEL, LOG_INFO, LOC + "##Succedded");
     return (fd_frontend >= 0);
 }
 
diff --git a/mythtv/libs/libmythtv/tv_rec.cpp b/mythtv/libs/libmythtv/tv_rec.cpp
index 6556380a1f..81e94ea831 100644
--- a/mythtv/libs/libmythtv/tv_rec.cpp
+++ b/mythtv/libs/libmythtv/tv_rec.cpp
@@ -1471,7 +1471,7 @@ void TVRec::run(void)
                 else
                 {
                     LOG(VB_CHANNEL, LOG_INFO, LOC + QString(
-                            "Postponing EIT scan on input %1 "
+                            "##Postponing EIT scan on input %1 "
                             "because input %2 is busy")
                         .arg(inputid).arg(busy_input.inputid));
                     eitScanStartTime = eitScanStartTime.addSecs(300);
@@ -1567,13 +1567,6 @@ void TVRec::HandlePendingRecordings(void)
 {
     QMutexLocker pendlock(&pendingRecLock);
 
-    if (pendingRecordings.empty())
-        return;
-
-    // If we have a pending recording and AskAllowRecording
-    // or DoNotAskAllowRecording is set and the frontend is
-    // ready send an ASK_RECORDING query to frontend.
-
     PendingMap::iterator it, next;
 
     for (it = pendingRecordings.begin(); it != pendingRecordings.end();)
@@ -1592,6 +1585,20 @@ void TVRec::HandlePendingRecordings(void)
         it = next;
     }
 
+    if (pendingRecordings.empty())
+        return;
+
+    // Make sure EIT scan is stopped so it does't interfere
+    if (scanner && HasFlags(kFlagEITScannerRunning))
+    {
+        LOG(VB_CHANNEL, LOG_INFO, LOC + "##Stopping active EIT scan for pending recording.");
+        tuningRequests.enqueue(TuningRequest(kFlagNoRec));
+    }
+
+    // If we have a pending recording and AskAllowRecording
+    // or DoNotAskAllowRecording is set and the frontend is
+    // ready send an ASK_RECORDING query to frontend.
+
     bool has_rec = false;
     it = pendingRecordings.begin();
     if ((1 == pendingRecordings.size()) &&
