Index: trunk/MagicSoft/Mars/mhbase/MBinning.h
===================================================================
--- trunk/MagicSoft/Mars/mhbase/MBinning.h	(revision 5100)
+++ trunk/MagicSoft/Mars/mhbase/MBinning.h	(revision 5143)
@@ -37,5 +37,5 @@
 public:
     MBinning(const char *name=NULL, const char *title=NULL);
-    MBinning(Int_t nbins, Axis_t lo, Axis_t hi, const char *name, const char *opt="", const char *title=NULL);
+    MBinning(Int_t nbins, Axis_t lo, Axis_t hi, const char *name=0, const char *opt="", const char *title=NULL);
 
     void SetEdges(const TArrayD &arr)
Index: trunk/MagicSoft/Mars/mhbase/MH.cc
===================================================================
--- trunk/MagicSoft/Mars/mhbase/MH.cc	(revision 5100)
+++ trunk/MagicSoft/Mars/mhbase/MH.cc	(revision 5143)
@@ -483,4 +483,6 @@
         return;
 
+    const Bool_t haserr = h.GetSumw2N()>0;
+
     const Int_t n0 = h.GetNbinsX();
     if (n0<2)
@@ -488,9 +490,10 @@
 
     TArrayD val(n0-1);
-    TArrayD err(n0-1);
+    TArrayD err(haserr ? n0-1 : 0);
     for (int i=1; i<n0; i++)
     {
         val[i-1] = h.GetBinContent(i+1);
-        err[i-1] = h.GetBinError(i+1);
+        if (haserr)
+            err[i-1] = h.GetBinError(i+1);
     }
 
@@ -505,5 +508,6 @@
     {
         h.SetBinContent(i, val[i-1]);
-        h.SetBinError(i, err[i-1]);
+        if (haserr)
+            h.SetBinError(i, err[i-1]);
     }
 }
