=== libs/libmythtv/eithelper.cpp
==================================================================
--- libs/libmythtv/eithelper.cpp	(revision 230)
+++ libs/libmythtv/eithelper.cpp	(revision 231)
@@ -26,8 +26,8 @@
 #define LOC QString("EITHelper: ")
 #define LOC_ERR QString("EITHelper, Error: ")
 
-EITHelper::EITHelper() :
-    eitfixup(new EITFixUp()), eitcache(new EITCache()),
+EITHelper::EITHelper(EITCache *cache) :
+    eitfixup(new EITFixUp()), eitcache(cache),
     gps_offset(-1 * GPS_LEAP_SECONDS),          utc_offset(0),
     sourceid(0)
 {
=== libs/libmythtv/eithelper.h
==================================================================
--- libs/libmythtv/eithelper.h	(revision 230)
+++ libs/libmythtv/eithelper.h	(revision 231)
@@ -51,7 +51,7 @@
 class EITHelper
 {
   public:
-    EITHelper();
+    EITHelper(EITCache *cache);
     virtual ~EITHelper();
 
     uint GetListSize(void) const;
=== libs/libmythtv/eitscanner.h
==================================================================
--- libs/libmythtv/eitscanner.h	(revision 230)
+++ libs/libmythtv/eitscanner.h	(revision 231)
@@ -17,6 +17,7 @@
 class EITHelper;
 class dvb_channel_t;
 class ProgramMapTable;
+class EITCache;
 
 class EITSource
 {
@@ -28,7 +29,7 @@
 class EITScanner
 {
   public:
-    EITScanner();
+    EITScanner(EITCache *cache);
     ~EITScanner() { TeardownAll(); }
 
     void StartPassiveScan(ChannelBase*, EITSource*, bool ignore_source);
=== libs/libmythtv/tv_rec.cpp
==================================================================
--- libs/libmythtv/tv_rec.cpp	(revision 230)
+++ libs/libmythtv/tv_rec.cpp	(revision 231)
@@ -117,6 +117,7 @@
        // Various components TVRec coordinates
     : recorder(NULL), channel(NULL), signalMonitor(NULL),
       scanner(NULL), dvbsiparser(NULL), dummyRecorder(NULL),
+      eitcache(NULL),
       // Configuration variables from database
       transcodeFirst(false), earlyCommFlag(false), runJobOnHostOnly(false),
       audioSampleRateDB(0), overRecordSecNrml(0), overRecordSecCat(0),
@@ -151,8 +152,8 @@
     bool init_run = false;
     if (genOpt.cardtype == "DVB")
     {
-        if (!scanner)
-            scanner = new EITScanner();
+        if (!scanner && eitcache)
+            scanner = new EITScanner(eitcache);
 
 #ifdef USING_DVB
         channel = new DVBChannel(genOpt.videodev.toInt(), this);
@@ -904,10 +905,10 @@
 #ifdef USING_HDHOMERUN
         HDHRChannel  *hdhr_channel  = GetHDHRChannel();
         HDHRRecorder *hdhr_recorder = GetHDHRRecorder();
-        if (hdhr_channel && hdhr_recorder && !scanner)
+        if (hdhr_channel && hdhr_recorder && !scanner && eitcache)
         {
             uint ignore = gContext->GetNumSetting("EITIgnoresSource", 0);
-            scanner = new EITScanner();
+            scanner = new EITScanner(eitcache);
             scanner->StartPassiveScan(hdhr_channel, hdhr_recorder, ignore);
         }
 #endif // USING_HDHOMERUN
=== libs/libmythtv/eitscanner.cpp
==================================================================
--- libs/libmythtv/eitscanner.cpp	(revision 230)
+++ libs/libmythtv/eitscanner.cpp	(revision 231)
@@ -25,8 +25,8 @@
 QDateTime  EITScanner::resched_next_time      = QDateTime::currentDateTime();
 const uint EITScanner::kMinRescheduleInterval = 150;
 
-EITScanner::EITScanner()
-    : channel(NULL), eitSource(NULL), eitHelper(new EITHelper()),
+EITScanner::EITScanner(EITCache *cache)
+    : channel(NULL), eitSource(NULL), eitHelper(new EITHelper(cache)),
       exitThread(false), rec(NULL), activeScan(false)
 {
     QStringList langPref = iso639_get_language_list();
=== libs/libmythtv/tv_rec.h
==================================================================
--- libs/libmythtv/tv_rec.h	(revision 230)
+++ libs/libmythtv/tv_rec.h	(revision 231)
@@ -20,6 +20,7 @@
 class QSocket;
 class NuppelVideoRecorder;
 class RingBuffer;
+class EITCache;
 class EITScanner;
 class DVBSIParser;
 class DummyDTVRecorder;
@@ -256,6 +257,8 @@
     void DVBGotPMT(void)
         { QMutexLocker lock(&stateChangeLock); triggerEventLoop.wakeAll(); }
 
+    void SetEITCache(EITCache *cache) { eitcache = cache; }
+
   public slots:
     void SignalMonitorAllGood() { triggerEventLoop.wakeAll(); }
     void deleteLater(void);
@@ -342,6 +345,7 @@
     RecorderBase     *recorder;
     ChannelBase      *channel;
     SignalMonitor    *signalMonitor;
+    EITCache         *eitcache;
     EITScanner       *scanner;
     DVBSIParser      *dvbsiparser;
     DummyDTVRecorder *dummyRecorder;
=== programs/mythbackend/eitactivescanner.cpp
==================================================================
--- programs/mythbackend/eitactivescanner.cpp	(revision 230)
+++ programs/mythbackend/eitactivescanner.cpp	(revision 231)
@@ -47,15 +47,15 @@
 {
     exitThread = false;
 
-//     QMap<int, EncoderLink *>::iterator it = cardList->begin();
-//     for (; it != cardList->end(); ++it)
-//     {
-//         TVRec *rec = it.data()->GetTVRec();
-//         if (rec)
-//         {
-//             rec->SetEITCache(eitCache);
-//         }
-//     }
+    QMap<int, EncoderLink *>::iterator it = cardList->begin();
+    for (; it != cardList->end(); ++it)
+    {
+        TVRec *rec = it.data()->GetTVRec();
+        if (rec)
+        {
+            rec->SetEITCache(eitCache);
+        }
+    }
 //    if (ismaster)
         StartActiveScan();
 
@@ -66,7 +66,7 @@
         if (ismaster && (QDateTime::currentDateTime() > activeScanNextTrig)
             && !cardList->isEmpty())
         {
-//             cerr << eitCache->GetStatistics() << endl;
+            cerr << eitCache->GetStatistics() << endl;
             if (activeScanNextCard == cardIDToSourceID.end())
             {
                 activeScanNextCard = cardIDToSourceID.begin();
