Index: trunk/MagicSoft/Mars/mbase/MTask.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MTask.cc	(revision 5100)
+++ trunk/MagicSoft/Mars/mbase/MTask.cc	(revision 5101)
@@ -202,8 +202,6 @@
 {
     // This does not reset the counter!
-    // fStopwatch->Reset();
-
-    delete fStopwatch;
-    fStopwatch = new TStopwatch;
+    fStopwatch->Reset();
+    fNumExec0 = GetNumExecutionsTotal();
 
     *fLog << all << fName << "... " << flush;
@@ -354,8 +352,18 @@
 // --------------------------------------------------------------------------
 //
+//  Return the total number of calls to since PreProcess(). If Process() was
+//  not called due to a set filter this is not counted.
+//
+UInt_t MTask::GetNumExecutions() const
+{
+    return GetNumExecutionsTotal()-fNumExec0;
+}
+
+// --------------------------------------------------------------------------
+//
 //  Return the total number of calls to Process(). If Process() was not
 //  called due to a set filter this is not counted.
 //
-UInt_t MTask::GetNumExecutions() const
+UInt_t MTask::GetNumExecutionsTotal() const
 {
     return (UInt_t)fStopwatch->Counter()-1;
Index: trunk/MagicSoft/Mars/mbase/MTask.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MTask.h	(revision 5100)
+++ trunk/MagicSoft/Mars/mbase/MTask.h	(revision 5101)
@@ -31,4 +31,5 @@
 
     TStopwatch *fStopwatch; //! Count the execution time and number of executions
+    UInt_t      fNumExec0;  //! Total number of executions at PreProcess
 
     virtual Int_t PreProcess(MParList *pList);
@@ -92,4 +93,5 @@
     // Task execution statistics
     UInt_t   GetNumExecutions() const;
+    UInt_t   GetNumExecutionsTotal() const;
     Double_t GetCpuTime() const;
     Double_t GetRealTime() const;
