Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 2466)
+++ trunk/MagicSoft/Mars/Changelog	(revision 2467)
@@ -37,4 +37,12 @@
      - moved code from Do() to Process()
      - added comments
+
+   * meventdisp/MGCamDisplay.cc:
+     - replaced MHillas:Clear() by Removing from ListOfPrimitives
+     
+   * mimage/MHillas.[h,cc]:
+     - removed fEllipse
+     - removed the Draw function
+     - added a correct Paint() function
 
 
Index: trunk/MagicSoft/Mars/meventdisp/MGCamDisplay.cc
===================================================================
--- trunk/MagicSoft/Mars/meventdisp/MGCamDisplay.cc	(revision 2466)
+++ trunk/MagicSoft/Mars/meventdisp/MGCamDisplay.cc	(revision 2467)
@@ -301,7 +301,7 @@
     else
     {
-        hillas->Clear();
         for (int i=0; i<5; i++)
         {
+            fCanvas2[i]->GetListOfPrimitives()->Remove(hillas);
             fCanvas2[i]->Modified();
             fCanvas2[i]->Update();
Index: trunk/MagicSoft/Mars/mimage/MHillas.cc
===================================================================
--- trunk/MagicSoft/Mars/mimage/MHillas.cc	(revision 2466)
+++ trunk/MagicSoft/Mars/mimage/MHillas.cc	(revision 2467)
@@ -82,5 +82,5 @@
 // Default constructor.
 //
-MHillas::MHillas(const char *name, const char *title) : fEllipse(NULL)
+MHillas::MHillas(const char *name, const char *title)
 {
     fName  = name  ? name  : "MHillas";
@@ -88,6 +88,4 @@
 
     Reset();
-
-    fEllipse = new TEllipse;
 }
 
@@ -98,5 +96,4 @@
 MHillas::~MHillas()
 {
-    Clear();
 }
 
@@ -115,6 +112,4 @@
     fMeanX  =  0;
     fMeanY  =  0;
-
-    Clear();
 }
 
@@ -143,36 +138,17 @@
 // --------------------------------------------------------------------------
 //
-// Instead of adding MHillas itself to the Pad (s. AppendPad in TObject)
-// we create an ellipse, which is added to the Pad by its Draw function
-// You can remove it by deleting the Ellipse Object (s. Clear())
-//
-void MHillas::Draw(Option_t *opt)
-{
-    Clear();
-
+// Paint the ellipse corresponding to the parameters
+//
+void MHillas::Paint(Option_t *opt)
+{
     if (fLength<0 || fWidth<0)
         return;
 
-    fEllipse = new TEllipse(fMeanX, fMeanY, fLength, fWidth,
+    TEllipse e(fMeanX, fMeanY, fLength, fWidth,
                             0, 360, fDelta*kRad2Deg+180);
 
-    fEllipse->SetLineWidth(2);
-    fEllipse->Draw();
-}
-
-// --------------------------------------------------------------------------
-//
-// If a TEllipse object exists it is deleted
-//
-void MHillas::Clear(Option_t *)
-{
-    if (!fEllipse)
-        return;
-
-    delete fEllipse;
-
-    fEllipse = NULL;
-}
-
+    e.SetLineWidth(2);
+    e.Paint();
+}
 
 // --------------------------------------------------------------------------
