Index: trunk/MagicSoft/Mars/mhist/MHMatrix.cc
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHMatrix.cc	(revision 1344)
+++ trunk/MagicSoft/Mars/mhist/MHMatrix.cc	(revision 1345)
@@ -106,8 +106,7 @@
         return;
     }
-
     fData->Add(&chain);
 
-    TNamed *name = new TNamed(rule, "");
+    TNamed *name = new TNamed(rule, rule); // Fimxe, in 3.02/07 the title can't be "", why?
     fRules->Add(name);
 }
@@ -298,44 +297,22 @@
 const TMatrix *MHMatrix::InvertPosDef()
 {
-    /*
-     ----------------------------------
-      Substract Mean of Rows from Rows
-     ----------------------------------
-
-    const Int_t rows = fM.GetNrows();
-    const Int_t cols = fM.GetNcols();
-
-    for (int i=0; i<rows; i++)
-    {
-        Double_t mean = 0;
-        for (int j=0; j<cols; j++)
-            mean += fM(i, j);
-        mean /= cols;
-
-        for (int j=0; j<cols; j++)
-            fM(i, j) -= mean;
-    }
-    */
-    /*
-     ----------------------------------
-      Substract Mean of Cols from Cols
-     ----------------------------------
-
-    const Int_t rows = fM.GetNrows();
-    const Int_t cols = fM.GetNcols();
+    TMatrix m(fM);
+
+    const Int_t rows = m.GetNrows();
+    const Int_t cols = m.GetNcols();
 
     for (int i=0; i<cols; i++)
     {
-        Double_t mean = 0;
+        Double_t avg = 0;
         for (int j=0; j<rows; j++)
-            mean += fM(j, i);
-        mean /= rows;
+            avg += fM(j, i);
+
+        avg /= rows;
 
         for (int j=0; j<rows; j++)
-            fM(j, i) -= mean;
-    }
-    */
-
-    TMatrix *m2 = new TMatrix(fM, TMatrix::kTransposeMult, fM);
+            m(j, i) -= avg;
+    }
+
+    TMatrix *m2 = new TMatrix(m, TMatrix::kTransposeMult, m);
 
     Double_t det;
