=== libs/libmythtv/mpeg/mpegdescriptors.cpp
==================================================================
--- libs/libmythtv/mpeg/mpegdescriptors.cpp	(revision 100)
+++ libs/libmythtv/mpeg/mpegdescriptors.cpp	(local)
@@ -93,7 +93,7 @@
     {
         if (DescriptorID::short_event == parsed[i][0])
         {
-            ShortEventDescriptor sed(parsed[unmatched_idx]);
+            ShortEventDescriptor sed(parsed[i]);
             QMap<uint,uint>::const_iterator it =
                 langPrefs.find(sed.CanonicalLanguageKey());
 
@@ -101,6 +101,7 @@
             {
                 match_idx = i;
                 match_pri = *it;
+                continue;
             }
 
             if (unmatched_idx < 0)
@@ -109,7 +110,7 @@
     }
 
     if (match_pri)
-        return parsed[match_pri];
+        return parsed[match_idx];
 
     if ((desc_tag == DescriptorID::short_event) && (unmatched_idx >= 0))
     {
@@ -133,7 +134,7 @@
     {
         if (DescriptorID::extended_event == parsed[i][0])
         {
-            ExtendedEventDescriptor eed(parsed[unmatched_idx]);
+            ExtendedEventDescriptor eed(parsed[i]);
             QMap<uint,uint>::const_iterator it =
                 langPrefs.find(eed.CanonicalLanguageKey());
 
@@ -141,6 +142,7 @@
             {
                 match_key = eed.LanguageKey();
                 match_pri = *it;
+                continue;
             }
 
             if (unmatched_idx < 0)
