--- libmythtv-orig/dtvconfparser.cpp	2008-12-07 18:57:21.000000000 +0900
+++ libmythtv/dtvconfparser.cpp	2008-12-07 19:21:08.000000000 +0900
@@ -108,6 +108,13 @@
 
         str = list[3];
 
+        if ((strtoul(str.toLatin1(),NULL,10)>0) &&
+            ((str.right(1)=="E") || (str.right(1)=="W"))
+           )
+        {
+            str="S";
+        }
+
         if ((str == "T") || (str == "C") || (str == "S"))
         {
             if ((type == OFDM) && (str == "T"))
@@ -231,7 +238,7 @@
 
 // BBC ONE:754166:I999B8C34D34M16T2G32Y0:T:27500:600:601, 602:0:0:4168:0:0:0
 
-    PARSE_SKIP(unknown);
+    PARSE_STR(chan.name);
 
     PARSE_UINT_1000(mux.frequency);
 
@@ -243,6 +250,7 @@
     {
         QString ori = params;
         int s = (int) (params.toAscii().constData()[0]);
+        s=toupper(s);
         params = params.mid(1);
         switch (s)
         {
@@ -280,12 +288,28 @@
             case 'O':
                 mux.rolloff.ParseVDR(params);
                 break;
+            case '0':
+            case '1':
+            case '2':
+            case '3':
+            case '4':
+            case '5':
+            case '6':
+            case '7':
+            case '8':
+            case '9':
+                break;
             default:
-                return false;
+                VERBOSE(VB_IMPORTANT, "Warning: Unknown parameter in list:"<<(char)s);
+                //return false;
         }
     }
 
-    for (uint i = 0; i < 6; i++)
+    PARSE_SKIP(unknown);
+
+    PARSE_UINT_1000(mux.symbolrate);
+
+    for (uint i = 0; i < 4; i++)
         PARSE_SKIP(unknown);
 
     PARSE_UINT(chan.serviceid);

