Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 3225)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 3226)
@@ -15,4 +15,17 @@
    * manalysis/MPedestalCam.h
      - Changed order of derivements - seems to be VERY important!
+
+   * mfileio/MReadReports.cc:
+     - skip trees with no entries
+
+   * mgui/MCamEvent.cc:
+     - added a comment
+
+   * mhbase/MFillH.cc:
+     - in case SetupFill returns kFALSE and kCanSkip is set
+       Skip task
+
+   * mraw/MRawFileRead.cc:
+     - don't print warning in case of none executions
 
 
Index: /trunk/MagicSoft/Mars/mfileio/MReadReports.cc
===================================================================
--- /trunk/MagicSoft/Mars/mfileio/MReadReports.cc	(revision 3225)
+++ /trunk/MagicSoft/Mars/mfileio/MReadReports.cc	(revision 3226)
@@ -205,4 +205,11 @@
         }
 
+        if (tree->GetEntries()==0)
+        {
+            *fLog << warn << "No events in tree '" << tree->GetName() << "'... skipped." << endl;
+            fTrees->RemoveFromList(tree);
+            continue;
+        }
+
         TString tn(tree->GetTitle());
         if (tn.IsNull())
Index: /trunk/MagicSoft/Mars/mgui/MCamEvent.cc
===================================================================
--- /trunk/MagicSoft/Mars/mgui/MCamEvent.cc	(revision 3225)
+++ /trunk/MagicSoft/Mars/mgui/MCamEvent.cc	(revision 3226)
@@ -31,4 +31,10 @@
 // If GetPixelContent returns kFALSE, it must not touch 'val'.
 //
+// You can derive a class in addition to TObject from MCamEvent, too.
+//
+// MCamEvent MUST be after TObject:
+//  ALLOWED:   class MyClass : public TObject, public MCamEvent
+//  FORBIDDEN: class MyClass : public MCamEvent, public TObject
+//
 //////////////////////////////////////////////////////////////////////////////
 #include "MCamEvent.h"
Index: /trunk/MagicSoft/Mars/mhbase/MFillH.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhbase/MFillH.cc	(revision 3225)
+++ /trunk/MagicSoft/Mars/mhbase/MFillH.cc	(revision 3226)
@@ -449,7 +449,10 @@
     if (!fH->SetupFill(pList))
     {
-        *fLog << err << "ERROR - Calling SetupFill for ";
-        *fLog << fH->GetDescriptor() << "... aborting." << endl;
-        return kFALSE;
+        *fLog << (TestBit(kCanSkip) ? warn : err);
+        *fLog << (TestBit(kCanSkip) ? "WARNING" : "ERROR");
+        *fLog << " Calling SetupFill for " << fH->GetDescriptor() << "...";
+        *fLog << (TestBit(kCanSkip) ? "skipped." : "aborting.");
+
+        return TestBit(kCanSkip) ? kSKIP : kFALSE;
     }
 
Index: /trunk/MagicSoft/Mars/mraw/MRawFileRead.cc
===================================================================
--- /trunk/MagicSoft/Mars/mraw/MRawFileRead.cc	(revision 3225)
+++ /trunk/MagicSoft/Mars/mraw/MRawFileRead.cc	(revision 3226)
@@ -199,8 +199,9 @@
     // Sanity check for the number of events
     //
-    if (fRawRunHeader->GetNumEvents() == GetNumExecutions()-1)
+    if (fRawRunHeader->GetNumEvents()==GetNumExecutions()-1 || GetNumExecutions()==0)
         return kTRUE;
 
-    *fLog << warn << "Warning - number of read events (" << GetNumExecutions()-1;
+    *fLog << warn << dec;
+    *fLog << "Warning - number of read events (" << GetNumExecutions()-1;
     *fLog << ") doesn't match number in run header (";
     *fLog << fRawRunHeader->GetNumEvents() << ")." << endl;
