Index: siparser.cpp
===================================================================
--- siparser.cpp	(revision 7770)
+++ siparser.cpp	(working copy)
@@ -1435,7 +1435,11 @@
 #endif
 
         // Hold short & extended event information from descriptors.
+        QString bestLanguageSE   = "";
+        uint    bestPrioritySE   = UINT_MAX;
         const unsigned char *bestDescriptorSE = NULL;
+        QString bestLanguageEE   = "";
+        uint    bestPriorityEE   = UINT_MAX;
         vector<const unsigned char*> bestDescriptorsEE;
 
         // Parse descriptors
@@ -1446,8 +1450,9 @@
         // Pick out EIT descriptors for later parsing, and parse others.
         while ((des_pos < (pos + descriptors_length)) && (des_pos <= size)) 
         { 
-            des_pos += ProcessDVBEventDescriptors(
-                &buffer[des_pos], bestDescriptorSE, bestDescriptorsEE, event);
+            des_pos += ProcessDVBEventDescriptors(&buffer[des_pos],
+                bestLanguageSE, bestPrioritySE, bestDescriptorSE,
+                bestLanguageEE, bestPriorityEE, bestDescriptorsEE, event);
         }
 
         // Parse extended event descriptions for the most preferred language
@@ -1944,7 +1949,7 @@
      return retval;
 }
 
-/** \fn ProcessDVBEventDescriptors(const unsigned char*,QString&,const unsigned char*,QString&, vector<const unsigned char*>&,Event&)
+/** \fn ProcessDVBEventDescriptors(const unsigned char*,QString&,uint,const unsigned char*,QString&,uint,vector<const unsigned char*>&,Event&)
  *  \brief Processes non-language dependent DVB Event descriptors, and caches
  *         language dependent DVB Event descriptors for the most preferred
  *         language.
@@ -1952,16 +1957,14 @@
  */
 uint SIParser::ProcessDVBEventDescriptors(
     const unsigned char          *data,
+    QString                      &bestLanguageSE,
+    uint                         &bestPrioritySE,
     const unsigned char*         &bestDescriptorSE, 
+    QString                      &bestLanguageEE,
+    uint                         &bestPriorityEE,
     vector<const unsigned char*> &bestDescriptorsEE,
     Event                        &event)
 {
-    QString bestLanguageSE   = "";
-    uint    bestPrioritySE   = UINT_MAX;
-
-    QString bestLanguageEE   = "";
-    uint    bestPriorityEE   = UINT_MAX;
-
     uint    descriptorTag    = data[0];
     uint    descriptorLength = data[1];
 
Index: siparser.h
===================================================================
--- siparser.h	(revision 7770)
+++ siparser.h	(working copy)
@@ -174,7 +174,11 @@
     // DVB EIT Table Descriptor processors
     uint ProcessDVBEventDescriptors(
         const unsigned char          *data,
+        QString                      &bestLanguageSE,
+        uint                         &bestPrioritySE,
         const unsigned char*         &bestDescriptorSE, 
+        QString                      &bestLanguageEE,
+        uint                         &bestPriorityEE,
         vector<const unsigned char*> &bestDescriptorsEE,
         Event                        &event);
 
