Index: libs/libmythtv/dvbchannel.cpp
===================================================================
--- libs/libmythtv/dvbchannel.cpp	(revision 10641)
+++ libs/libmythtv/dvbchannel.cpp	(working copy)
@@ -601,7 +601,6 @@
         return false;
     }
 
-    tune_time.start();
     desired_tuning = tuning;
 
     if (fd_frontend < 0)
@@ -784,16 +783,6 @@
     return NULL;
 }
 
-bool DVBChannel::IsSelfRetuning(void) const
-{
-    return info.caps & FE_CAN_RECOVER;
-}
-
-int DVBChannel::GetTimeSinceTune(void) const
-{
-    return first_tune ? 0 : tune_time.elapsed();
-}
-
 /** \fn drain_dvb_events(int)
  *  \brief Reads all the events off the queue, so we can use select
  *         in wait_for_backend(int,int).
Index: libs/libmythtv/dvbchannel.h
===================================================================
--- libs/libmythtv/dvbchannel.h	(revision 10641)
+++ libs/libmythtv/dvbchannel.h	(working copy)
@@ -59,11 +59,6 @@
     /// Returns true iff we have a faulty DVB driver that munges PMT
     bool HasCRCBug(void)                const { return has_crc_bug; }
     uint GetMinSignalMonitorDelay(void) const { return sigmon_delay; }
-    /// If true the hardware will retune when it loses lock, otherwise
-    /// the tuner needs to be told to tune when it loses lock.
-    bool IsSelfRetuning(void) const;
-    /// Milliseconds since last tuning request, or 0 if never tuned.
-    int  GetTimeSinceTune(void) const;
     /// Returns rotor object if it exists, NULL otherwise.
     const DiSEqCDevRotor *GetRotor(void) const;
 
@@ -121,7 +116,6 @@
     int               cardnum;     ///< DVB Card number
     bool              has_crc_bug; ///< true iff our driver munges PMT
     int               nextInputID; ///< Signal an input change
-    QTime             tune_time;   ///< FIXME won't work well at midnight
 };
 
 #endif
Index: libs/libmythtv/dvbsignalmonitor.cpp
===================================================================
--- libs/libmythtv/dvbsignalmonitor.cpp	(revision 10641)
+++ libs/libmythtv/dvbsignalmonitor.cpp	(working copy)
@@ -503,18 +503,7 @@
 void DVBSignalMonitor::RetuneMonitor(void)
 {
     DVBChannel *dvbchan = dynamic_cast<DVBChannel*>(channel);
-    int fd_frontend = dvbchan->GetFd();
 
-    // Get lock status
-    bool is_locked = true;
-    fe_status_t status;
-    if (ioctl(fd_frontend, FE_READ_STATUS, &status) != -1)
-    {
-        QMutexLocker locker(&statusLock);
-        is_locked = (status & FE_HAS_LOCK);
-        signalLock.SetValue(is_locked ? 1 : 0);
-    }
-
     // Rotor position
     if (HasFlags(kDVBSigMon_WaitForPos))
     {
@@ -547,14 +536,6 @@
             rotorPosition.SetValue(100);
         }
     }
-
-    // Periodically retune if card can't recover
-    if (!dvbchan->IsSelfRetuning() && !is_locked &&
-        dvbchan->GetTimeSinceTune() > RETUNE_TIMEOUT)
-    {
-        DBG_SM("UpdateValues", "Retuning for lock loss");
-        dvbchan->Retune();
-    }
 }
 
 void DVBSignalMonitor::RunTableMonitor(void)
