Index: libs/libmythtv/siparser.cpp
===================================================================
--- libs/libmythtv/siparser.cpp	(revision 7609)
+++ libs/libmythtv/siparser.cpp	(working copy)
@@ -22,7 +22,7 @@
 #define WORD(i,j)   ((i << 8) | j)
 
 // Set EIT_DEBUG_SID to a valid serviceid to enable EIT debugging
-// #define EIT_DEBUG_SID 1602
+// #define EIT_DEBUG_SID 49
 
 /** \class SIParser
  *  This class parses DVB SI and ATSC PSIP tables.
@@ -1390,12 +1390,16 @@
                         if (e.ServiceID == EIT_DEBUG_SID)
                         {
                             fprintf(stdout,"EIT_EVENT: 4D descriptor, "
-                                    "lang %s, prio %i\n",
-                                    lang.ascii(), prio);
+                                    "lang %s, prio %i, bd4D_prio=%i, bd4D_lang=%s\n",
+                                    lang.ascii(), prio, bd4D_prio, bd4D_lang.ascii());
                         }
 #endif
-
-                        if ((prio > 0 && prio < bd4D_prio) || bd4D_prio == -1)
+                        if (prio > 0 && bd4D_prio == -1) {
+                            bd4D_lang = lang;
+                            bd4D_prio = prio;
+                            bd4D_data = &buffer[des_pos];
+                        }
+                        else if (prio > 0 && prio < bd4D_prio)
                         {
                             // this descriptor is better than what we have
                             // => store a reference to this one
@@ -1457,6 +1461,12 @@
                         &buffer[des_pos],buffer[des_pos+1]+2,e);
                     break;
 
+                case 0x55:       // Parental Rating Descriptor
+                    break;
+
+                case 0x5F:       // Private Data Specifier Descriptor
+                    break;
+
                 default:            
                     ProcessUnknownDescriptor(
                         &buffer[des_pos],buffer[des_pos+1]+2);
