Index: libs/libmythtv/mpeg/mpegstreamdata.cpp
===================================================================
--- libs/libmythtv/mpeg/mpegstreamdata.cpp	(rvision 23865)
+++ libs/libmythtv/mpeg/mpegstreamdata.cpp	(copie de travail)
@@ -371,6 +371,7 @@
     // There might be another section after this one in the
     // current packet. We need room before the end of the
     // packet, and it must not be packet stuffing.
+#if 0
     if ((offset + psip->SectionLength() < TSPacket::SIZE) &&
         (pesdata[psip->SectionLength() + 1] != 0xff))
     {
@@ -381,6 +382,7 @@
         SavePartialPES(tspacket->PID(), pesp);
         return psip;
     }
+#endif
 
     moreTablePackets = false;
     return psip;
@@ -924,7 +926,7 @@
                 _mpeg_sp_listeners[i]->HandleSingleProgramPMT(pmt_sp);
         }
         DONE_WITH_PES_PACKET(); // already parsed this table, toss it.
-    }
+    } 
 
     HandleTables(tspacket->PID(), *psip);
 
Index: libs/libmythtv/mpeg/pespacket.cpp
===================================================================
--- libs/libmythtv/mpeg/pespacket.cpp	(rvision 23865)
+++ libs/libmythtv/mpeg/pespacket.cpp	(copie de travail)
@@ -156,10 +156,10 @@
     {
         VERBOSE(VB_SIPARSER,
                 QString("PESPacket: Failed CRC check 0x%1 != 0x%2 "
-                        "for StreamID = 0x%3")
+                        "for StreamID = 0x%3 - ignored")
                 .arg(CRC(),0,16).arg(CalcCRC(),0,16).arg(StreamID(),0,16));
     }
-    return ret;
+    return true;
 }
 
 // These are pixel aspect ratios
Index: libs/libmythtv/mpeg/mpegtables.cpp
===================================================================
--- libs/libmythtv/mpeg/mpegtables.cpp	(rvision 23865)
+++ libs/libmythtv/mpeg/mpegtables.cpp	(copie de travail)
@@ -168,9 +168,9 @@
     {
         VERBOSE(VB_SIPARSER,
                 QString("PSIPTable: Failed CRC check 0x%1 != 0x%2 "
-                        "for StreamID = 0x%3")
+                        "for StreamID = 0x%3 - ignored")
                 .arg(CRC(),0,16).arg(CalcCRC(),0,16).arg(StreamID(),0,16));
-        return false;
+        return true;
     }
 
     unsigned char *bufend = _fullbuffer + _allocSize;
Index: libs/libmythtv/iptv/iptvchannelfetcher.cpp
===================================================================
--- libs/libmythtv/iptv/iptvchannelfetcher.cpp	(rvision 23865)
+++ libs/libmythtv/iptv/iptvchannelfetcher.cpp	(copie de travail)
@@ -320,6 +320,13 @@
         QString msg = QObject::tr("Encountered malformed channel");
         if (!channum.isEmpty())
         {
+	    while (chanmap.contains(channum)) {
+		char buffer[10];
+		int num = channum.toInt()+1;
+		sprintf(buffer,"%d",num);
+		channum = buffer;
+	    }
+
             chanmap[channum] = info;
 
             msg = QObject::tr("Parsing Channel #%1 : %2 : %3")
