Index: libs/libmythtv/eithelper.cpp
===================================================================
--- libs/libmythtv/eithelper.cpp	(Revision 13370)
+++ libs/libmythtv/eithelper.cpp	(Arbeitskopie)
@@ -387,7 +387,49 @@
                     seriesId = desc.ContentId();
             }
         }
+       
+        // The german station arena uses the premiere direct feeds to broacast 
+        // sport events like the german bundesliga on some cable providers.
+        // Use the linkage descriptor to fill the epg with these sport events.
+        desc_list_t linkages =
+             MPEGDescriptor::FindAll(list, DescriptorID::linkage);
+        if ((eit->ServiceID()==50)&&(linkages.size()>0))
+        {
+            for(uint j=0;j<linkages.size();j++)
+            {    
+                LinkageDescriptor linkage(linkages[j]);
+                uint networkid         = linkage.OriginalNetworkID();
+                uint tsid              = linkage.TSID();
+                uint serviceid         = linkage.ServiceID();
+                uint linkagetype       = linkage.LinkageType();
+                unsigned char enc_ch[1] = { 0x05 };
+                const unsigned char *enc =
+                    (fix & EITFixUp::kFixPremiere) ? enc_ch : NULL;
+                QString subevent       = dvb_decode_text(linkage.PrivateData_N8(),linkage.PrivateDataLength_N8(),enc,1);
 
+                uint chanid = GetChanID(serviceid,networkid,tsid);
+
+                VERBOSE(VB_EIT, LOC + QString("NIT:%1 TID:%2 SID:%3 TITLE:%4 %5").arg(networkid).arg(tsid).arg(serviceid).arg(title).arg(subevent));
+                if (!chanid)
+                    continue;
+
+                QDateTime starttime = MythUTCToLocal(eit->StartTimeUTC(i));
+                EITFixUp::TimeFix(starttime);
+                QDateTime endtime   = starttime.addSecs(eit->DurationInSeconds(i));
+
+                DBEvent *event = new DBEvent(chanid,
+                                             title,     subevent,      subevent,
+                                             QObject::tr("Sports"),  kCategorySports,
+                                             starttime, endtime,       fix,
+                                             false,     subtitled,
+                                             stereo,    hdtv,
+                                             "",    "");
+                db_events.enqueue(event);
+                
+            }
+        }
+        
+
         QDateTime starttime = MythUTCToLocal(eit->StartTimeUTC(i));
         EITFixUp::TimeFix(starttime);
         QDateTime endtime   = starttime.addSecs(eit->DurationInSeconds(i));
