Index: trunk/MagicSoft/Mars/mbase/MParList.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MParList.cc	(revision 2551)
+++ trunk/MagicSoft/Mars/mbase/MParList.cc	(revision 2552)
@@ -472,11 +472,40 @@
     //
     TClass *cls = gROOT->GetClass(cname);
+    Int_t rc = 0;
     if (!cls)
-    {
-        //
-        // if class is not existing in the root environment
-        //
-        *fLog << err << dbginf << "Class '" << cname << "' not existing in dictionary." << endl;
-        return NULL;
+        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)
+    {
+        *fLog << err << dbginf << "Cannot create new instance of class '" << cname << "': ";
+        switch (rc)
+        {
+        case 1:
+            *fLog << "gROOT->GetClass(\"" << cname << "\" returned NULL." << endl;
+            return NULL;
+        case 2:
+            *fLog << "no default constructor." << endl;
+            return NULL;
+        case 3:
+            *fLog << "not loaded." << endl;
+            return NULL;
+        case 4:
+            *fLog << "zero size." << endl;
+            return NULL;
+        case 5:
+            *fLog << "no property." << endl;
+            return NULL;
+        }
     }
 
@@ -487,5 +516,4 @@
     if (!pcont)
     {
-        *fLog << err << dbginf << "Cannot create new instance of class '" << cname << "' Possible reasons:" << endl;
         *fLog << " - Class has no default constructor." << endl;
         *fLog << " - An abstract member functions of a base class is not overwritten." << endl;
