Index: trunk/MagicSoft/Mars/mreport/MReport.cc
===================================================================
--- trunk/MagicSoft/Mars/mreport/MReport.cc	(revision 7639)
+++ trunk/MagicSoft/Mars/mreport/MReport.cc	(revision 7719)
@@ -36,7 +36,5 @@
 //   Old Version | MjdMin  | MjdMax  | New Version
 //  -------------+---------+---------+-------------
-//   200504130   | 53548.0 | 53567.0 | 200506300
-//   200503170   | 53446.5 | 53447.5 | 200502240
-//
+//    see MReport::Interprete()
 //
 //  Be carefull: The class name of all classes derived from this class
Index: trunk/MagicSoft/Mars/mreport/MReportCC.cc
===================================================================
--- trunk/MagicSoft/Mars/mreport/MReportCC.cc	(revision 7639)
+++ trunk/MagicSoft/Mars/mreport/MReportCC.cc	(revision 7719)
@@ -136,8 +136,28 @@
 // Interprete the TH (discriminator thresholds) part of the report
 //
-Bool_t MReportCC::InterpreteTH(TString &str)
+Bool_t MReportCC::InterpreteTH(TString &str, Int_t ver)
 {
     if (!CheckTag(str, "TH "))
         return kFALSE;
+
+    // Skip the TH (discriminator thresholds) part of the report (for old
+    // CC files with wrong or nonsense number of TH-Bytes)
+    if (ver<200507190)
+    {
+        Ssiz_t pr = str.First(' ');
+        if (pr<0)
+        {
+            *fLog << warn << "WARNING - No TH information found at all." << endl;
+            return kFALSE;
+        }
+        if (pr!=1154)
+        {
+            fTD->Invalidate();
+
+            str.Remove(0, pr);
+            str=str.Strip(TString::kLeading);
+            return kTRUE;
+        }
+    }
 
     const char *pos = str.Data();
@@ -158,4 +178,6 @@
     }
 
+    fTH->SetValid();
+
     str.Remove(0, end-str.Data()); // Remove TH
     str=str.Strip(TString::kLeading);
@@ -170,6 +192,27 @@
 {
     if (!CheckTag(str, "TD "))
-        return kFALSE;
-
+        return kTRUE;
+
+    // Skip the TD (discriminator delays) part of the report (for old
+    // CC files with wrong or nonsense number of TD-Bytes)
+    if (ver<200412210)
+    {
+        Ssiz_t pr = str.First(' ');
+        if (pr<0)
+        {
+            *fLog << warn << "WARNING - No TD information found at all." << endl;
+            return kFALSE;
+        }
+        if (pr!=1000)
+        {
+            fTD->Invalidate();
+
+            str.Remove(0, pr);
+            str=str.Strip(TString::kLeading);
+            return kTRUE;
+        }
+    }
+
+    // Older files have less bytes (pixels) stored
     const Int_t numpix = ver<200510250 ? 500 : 577;
 
@@ -191,6 +234,9 @@
     }
 
+    fTD->SetValid();
+
     str.Remove(0, end-str.Data()); // Remove TD
     str=str.Strip(TString::kLeading);
+
     return kTRUE;
 }
@@ -238,9 +284,18 @@
         return kCONTINUE;
 
-    if (!InterpreteTH(str))
-        return kCONTINUE;
-
-    if (!InterpreteTD(str, ver))
-        return kCONTINUE;
+    if (str.BeginsWith("RECEIVERS-COM-ERROR"))
+    {
+        fTD->Invalidate();
+        fTH->Invalidate();
+        str.Remove(0, 19);
+    }
+    else
+    {
+        if (!InterpreteTH(str, ver))
+            return kCONTINUE;
+
+        if (!InterpreteTD(str, ver))
+            return kCONTINUE;
+    }
 
     if (ver>=200510250)
Index: trunk/MagicSoft/Mars/mreport/MReportCC.h
===================================================================
--- trunk/MagicSoft/Mars/mreport/MReportCC.h	(revision 7639)
+++ trunk/MagicSoft/Mars/mreport/MReportCC.h	(revision 7719)
@@ -30,5 +30,5 @@
 
     Bool_t InterpreteCC(TString &str, Int_t ver);
-    Bool_t InterpreteTH(TString &str);
+    Bool_t InterpreteTH(TString &str, Int_t ver);
     Bool_t InterpreteTD(TString &str, Int_t ver);
     Bool_t InterpreteRecTemp(TString &str);
Index: trunk/MagicSoft/Mars/mreport/MReportFileReadCC.cc
===================================================================
--- trunk/MagicSoft/Mars/mreport/MReportFileReadCC.cc	(revision 7639)
+++ trunk/MagicSoft/Mars/mreport/MReportFileReadCC.cc	(revision 7719)
@@ -127,5 +127,5 @@
     const Int_t ver = atoi(str.Data());
 
-    *fLog << dbg << "Report File version: <" << ver << ">" << endl;
+    *fLog << all << "Report File version: <" << ver << ">" << endl;
 
     SetVersion(ver);
