Index: trunk/MagicSoft/Mars/mfileio/MReadReports.cc
===================================================================
--- trunk/MagicSoft/Mars/mfileio/MReadReports.cc	(revision 4756)
+++ trunk/MagicSoft/Mars/mfileio/MReadReports.cc	(revision 4766)
@@ -113,4 +113,40 @@
 }
 
+// --------------------------------------------------------------------------
+//
+// Return the number of entries in all trees.
+//
+UInt_t MReadReports::GetEntries()
+{
+    UInt_t n=0;
+
+    TIter NextT(fTrees->GetList());
+    MReadTree *tree=0;
+    while ((tree=(MReadTree*)NextT()))
+        n += tree->GetEntries();
+
+    return n;
+}
+
+// --------------------------------------------------------------------------
+//
+// In case of a Master Tree GetFileName() of the MReadMarsFile is returned.
+// If no master is available "<MReadReports>" is returned.
+//
+TString MReadReports::GetFileName() const
+{
+    if (!TestBit(kHasMaster))
+        return "<MReadReports>";
+
+    TIter NextT(fTrees->GetList());
+    MReadTree *tree=0;
+    while ((tree=(MReadTree*)NextT()))
+        if (tree->InheritsFrom("MReadMarsFile"))
+            return tree->GetFileName();
+
+    return "<n/a>";
+
+}
+
 void MReadReports::AddToBranchList(const char *name)
 {
@@ -150,5 +186,5 @@
     t->SetTitle(time?time:"");
     if (master)
-        t->SetBit(kHasMaster);
+        SetBit(kHasMaster);
 
     if (!fEnableAutoScheme)
Index: trunk/MagicSoft/Mars/mfileio/MReadReports.h
===================================================================
--- trunk/MagicSoft/Mars/mfileio/MReadReports.h	(revision 4756)
+++ trunk/MagicSoft/Mars/mfileio/MReadReports.h	(revision 4766)
@@ -30,6 +30,6 @@
     Int_t   FindNextTime();
 
-    UInt_t  GetEntries() { return 0; }
-    TString GetFileName() const { return "<MReadReports>"; };
+    UInt_t  GetEntries();
+    TString GetFileName() const;
 
     Int_t   PreProcess(MParList *plist);
@@ -37,9 +37,6 @@
     Int_t   PostProcess();
 
-    //Bool_t  Notify();
-
     enum {
-        //MReadTree::kChainWasChanged = BIT(14)
-        kHasMaster = BIT(15)
+        kHasMaster = BIT(14)
     };
 
Index: trunk/MagicSoft/Mars/mfileio/MReadTree.cc
===================================================================
--- trunk/MagicSoft/Mars/mfileio/MReadTree.cc	(revision 4756)
+++ trunk/MagicSoft/Mars/mfileio/MReadTree.cc	(revision 4766)
@@ -566,5 +566,5 @@
         ResetBit(kChainWasChanged);
     }
-    return fNumEntries;
+    return fNumEntries==TChain::kBigNumber ? 0 : fNumEntries;
 }
 
@@ -616,4 +616,7 @@
     //
     fChain->ResetTree();
+    // Maybe this would be enough, but the above might be safer...
+    //if (fChain->GetTreeNumber()==0)
+    //    fChain->ResetTree();
 
     //
