Index: sitypes.cpp
===================================================================
--- sitypes.cpp	(revision 7545)
+++ sitypes.cpp	(working copy)
@@ -797,6 +797,7 @@
     status[key].requested = true;
     status[key].requestedEmit = true;
     status[key].emitted = false;
+    status[key].pulling = true;
 }
 
 bool EventHandler::EmitRequired()
@@ -814,11 +815,28 @@
         if (!(sttloaded))
             return false;
     }
+
     if (!(servicesloaded))
+    {
+#ifdef EIT_DEBUG_SID
+        static int n =0;
+        if (n++%100)
+            printf("EventHandler::EmitRequired no services\n");
+#endif
         return false;
+    }
 
     for (s = status.begin() ; s != status.end() ; ++s)
     {
+#ifdef EIT_DEBUG_SID
+        if (s.key()==EIT_DEBUG_SID)
+        {
+            if (s.data().emitted || !s.data().pulling)
+                 printf("EventHandler::EmitRequired %d: tracker not pulling\n",EIT_DEBUG_SID);
+            if (TrackerSetup[s.key()] == false)
+                 printf("EventHandler::EmitRequired %d: tracker not setup\n",EIT_DEBUG_SID);
+        }
+#endif
         if (s.data().emitted || !s.data().pulling)
         {
             continue;
@@ -832,10 +850,18 @@
         {
             if (!i.data().Complete())
             {
+#ifdef EIT_DEBUG_SID
+                if (s.key()==EIT_DEBUG_SID)
+                    printf("EventHandler::EmitRequired %d: 0%x is not complete\n",EIT_DEBUG_SID,i.key());
+#endif
                 AllComplete = false;
                 break;
             }
         }
+#ifdef EIT_DEBUG_SID
+                if (s.key()==EIT_DEBUG_SID)
+                    printf("EventHandler::EmitRequired %d: AllComplete =%d\n",EIT_DEBUG_SID,AllComplete);
+#endif
         if (SIStandard == SI_STANDARD_ATSC)
         {
             for (e = Events[s.key()].begin() ; e != Events[s.key()].end() ; ++e)
@@ -857,6 +883,10 @@
                 }
             }
         }
+#ifdef EIT_DEBUG_SID
+                if (s.key()==EIT_DEBUG_SID)
+                    printf("EventHandler::EmitRequired (End) %d: AllComplete=%d\n",EIT_DEBUG_SID,AllComplete);
+#endif
         if (AllComplete)
             return true;
     }
