Index: trunk/MagicSoft/Mars/mbase/MParList.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MParList.cc	(revision 9025)
+++ trunk/MagicSoft/Mars/mbase/MParList.cc	(revision 9026)
@@ -776,5 +776,6 @@
     // try to get class from root environment
     //
-    TClass *cls = GetClass(cname);
+    gLog << err;
+    TClass *cls = GetClass(cname, &gLog);
     if (!cls)
         return list;
@@ -782,6 +783,6 @@
     if (!cls->InheritsFrom(MParContainer::Class()))
     {
-        *fLog << err << dbginf << "Cannot create new instance of class '" << cname << "': " << endl;
-        *fLog << "Class doesn't inherit from MParContainer." << endl;
+        gLog << err << dbginf << "Cannot create new instance of class '" << cname << "': " << endl;
+        gLog << "Class doesn't inherit from MParContainer." << endl;
         return list;
     }
Index: trunk/MagicSoft/Mars/mbase/MStatusArray.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MStatusArray.cc	(revision 9025)
+++ trunk/MagicSoft/Mars/mbase/MStatusArray.cc	(revision 9026)
@@ -44,5 +44,5 @@
 #include "MStatusArray.h"
 
-#include <TH1.h>      // TH1::AddDirectoryStatus();
+#include <TH1.h>       // TH1::AddDirectoryStatus();
 #include <TClass.h>
 #include <TCanvas.h>
@@ -51,4 +51,5 @@
 #include "MLogManip.h"
 
+#include "MParContainer.h"   // MParContainer::GetClass
 #include "MStatusDisplay.h"
 
@@ -125,51 +126,4 @@
 }
 
-// FIXME: Move to a general class MMARS (TROOT) and unify with MParContainer
-TClass *MStatusArray::GetClass(const char *name) const
-{
-    TClass *cls = gROOT->GetClass(name);
-    Int_t rc = 0;
-    if (!cls)
-        rc =1;
-    else
-    {
-        if (!cls->Property())
-            rc = 5;
-        if (!cls->Size())
-            rc = 4;
-        if (!cls->IsLoaded())
-            rc = 3;
-        if (!cls->HasDefaultConstructor())
-            rc = 2;
-    }
-
-    if (rc==0)
-        return cls;
-
-    gLog << err << dbginf << "Class '" << name << "' not in dictionary: ";
-    switch (rc)
-    {
-    case 1:
-        gLog << "gROOT->GetClass() returned NULL." << endl;
-        return NULL;
-    case 2:
-        gLog << "no default constructor." << endl;
-        return NULL;
-    case 3:
-        gLog << "not loaded." << endl;
-        return NULL;
-    case 4:
-        gLog << "zero size." << endl;
-        return NULL;
-    case 5:
-        gLog << "no property." << endl;
-        return NULL;
-    }
-
-    gLog << "THIS SHOULD NEVER HAPPEN!" << endl;
-
-    return 0;
-}
-
 TCanvas *MStatusArray::FindCanvas(const char *name) const
 {
@@ -184,5 +138,6 @@
 TObject *MStatusArray::FindObjectInCanvas(const char *object, const char *base, const char *canvas) const
 {
-    TClass *cls = GetClass(base);
+    gLog << err;
+    TClass *cls = MParContainer::GetClass(base, &gLog);
     if (!cls)
         return 0;
Index: trunk/MagicSoft/Mars/mbase/MStatusArray.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MStatusArray.h	(revision 9025)
+++ trunk/MagicSoft/Mars/mbase/MStatusArray.h	(revision 9026)
@@ -24,5 +24,4 @@
     void     PrintObjectsInPad(const TCollection *list, const TString &name, Int_t lvl=0) const;
     TObject *FindObjectInPad(TVirtualPad *pad, const char *object, TClass *base) const;
-    TClass  *GetClass(const char *name) const;
 
 public:
