Index: trunk/MagicSoft/Mars/mbase/MEvtLoop.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MEvtLoop.cc	(revision 1119)
+++ trunk/MagicSoft/Mars/mbase/MEvtLoop.cc	(revision 1130)
@@ -190,5 +190,9 @@
             {
                 fProgress->SetPosition(++dummy);
+#if ROOT_VERSION_CODE < ROOT_VERSION(3,02,06)
+                gSystem->ProcessEvents();
+#else
                 gClient->ProcessEventsFor(fProgress);
+#endif
             }
         else
@@ -200,5 +204,9 @@
             {
                 fProgress->SetPosition(maxcnt - dummy);
+#if ROOT_VERSION_CODE < ROOT_VERSION(3,02,06)
+                gSystem->ProcessEvents();
+#else
                 gClient->ProcessEventsFor(fProgress);
+#endif
             }
         else
Index: trunk/MagicSoft/Mars/mbase/MReadTree.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MReadTree.cc	(revision 1119)
+++ trunk/MagicSoft/Mars/mbase/MReadTree.cc	(revision 1130)
@@ -565,4 +565,7 @@
 //  If the end of the file is reached the Eventloop is stopped.
 //
+#if ROOT_VERSION_CODE < ROOT_VERSION(3,02,06)
+#include "../mraw/MRawEvtData.h"
+#endif
 Bool_t MReadTree::Process()
 {
@@ -573,4 +576,21 @@
     if (fNumEntry >= fNumEntries)
         return kFALSE;
+
+#if ROOT_VERSION_CODE < ROOT_VERSION(3,02,06)
+    //
+    // This fixes 99.9% of a memory leak using a root version prior
+    // to 3.02/??
+    //
+    TChainElement *element=NULL;
+    TIter Next(fChain->GetStatus());
+    while ((element=(TChainElement*)Next()))
+    {
+        MParContainer **c = (MParContainer**)element->GetBaddress();
+        if (!c) continue;
+        if ((*c)->InheritsFrom(MRawEvtData::Class()))
+            ((MRawEvtData*)(*c))->DeletePixels(kFALSE);
+
+    }
+#endif
 
     Bool_t rc = fChain->GetEntry(fNumEntry++) != 0;
