Index: trunk/MagicSoft/Mars/mfileio/MReadReports.cc
===================================================================
--- trunk/MagicSoft/Mars/mfileio/MReadReports.cc	(revision 3009)
+++ trunk/MagicSoft/Mars/mfileio/MReadReports.cc	(revision 3144)
@@ -198,7 +198,8 @@
     while ((tree=(MReadTree*)NextT()))
     {
-        if (((TChain*)tree->fChain)->GetListOfFiles()->GetEntries()==0)
+        if (!((TChain*)tree->fChain)->GetFile())
         {
-            *fLog << warn << "No files for Tree " << tree->GetName() << "... skipped." << endl;
+            *fLog << warn << "No files or no tree '" << tree->GetName() << "'... skipped." << endl;
+            fTrees->RemoveFromList(tree);
             continue;
         }
@@ -240,4 +241,10 @@
     }
 
+    if (i==0)
+    {
+        *fLog << err << "Files do not contain any valid tree... abort." << endl;
+        return kFALSE;
+    }
+
     fPosEntry.Set(i);
 
@@ -338,4 +345,6 @@
         }
 
+        *fLog << dbg << "Removing chain " << chain->GetName() << " from list." << endl;
+
         delete *GetTime(chain);
         delete  GetTime(chain);
Index: trunk/MagicSoft/Mars/mfileio/MReadTree.cc
===================================================================
--- trunk/MagicSoft/Mars/mfileio/MReadTree.cc	(revision 3009)
+++ trunk/MagicSoft/Mars/mfileio/MReadTree.cc	(revision 3144)
@@ -597,9 +597,18 @@
 
     //
+    // check for files and for the tree!
+    //
+    if (!fChain->GetFile())
+    {
+        *fLog << err << GetDescriptor() << ": No file or no tree with name " << fChain->GetName() << " in file." << endl;
+        return kFALSE;
+    }
+
+    //
     // get number of events in this tree
     //
     if (!GetEntries())
     {
-        *fLog << warn << GetDescriptor() << ": No entries found in file(s)" << endl;
+        *fLog << err << GetDescriptor() << ": No entries found in file(s)" << endl;
         return kFALSE;
     }
