diff --git a/hist/hist/inc/TH1.h b/hist/hist/inc/TH1.h
index e96c049b6459f1a10088213543bc6793d8b0ac5d..5502fb77035125b2b18cdaf8a83ef6e0d1283018 100644
--- a/hist/hist/inc/TH1.h
+++ b/hist/hist/inc/TH1.h
@@ -123,6 +123,7 @@ private:
    Int_t   AxisChoice(Option_t *axis) const;
    void    Build();
 
+   TH1(const TH1&);
    TH1& operator=(const TH1&); // Not implemented
 
 
@@ -171,8 +172,6 @@ public:
    };
 
 
-
-   TH1(const TH1&);
    virtual ~TH1();
 
    virtual Bool_t   Add(TF1 *h1, Double_t c1=1, Option_t *option="");
@@ -405,6 +404,7 @@ public:
    TH1C(const char *name,const char *title,Int_t nbinsx,const Float_t  *xbins);
    TH1C(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins);
    TH1C(const TH1C &h1c);
+   TH1C& operator=(const TH1C &h1);
    virtual ~TH1C();
 
    virtual void     AddBinContent(Int_t bin);
@@ -413,7 +413,6 @@ public:
    virtual TH1     *DrawCopy(Option_t *option="") const;
    virtual void     Reset(Option_t *option="");
    virtual void     SetBinsLength(Int_t n=-1);
-           TH1C&    operator=(const TH1C &h1);
 
    ClassDef(TH1C,1)  //1-Dim histograms (one char per channel)
 
@@ -447,6 +446,7 @@ public:
    TH1S(const char *name,const char *title,Int_t nbinsx,const Float_t  *xbins);
    TH1S(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins);
    TH1S(const TH1S &h1s);
+   TH1S& operator=(const TH1S &h1);
    virtual ~TH1S();
 
    virtual void     AddBinContent(Int_t bin);
@@ -455,7 +455,6 @@ public:
    virtual TH1     *DrawCopy(Option_t *option="") const;
    virtual void     Reset(Option_t *option="");
    virtual void     SetBinsLength(Int_t n=-1);
-           TH1S&    operator=(const TH1S &h1);
 
    ClassDef(TH1S,1)  //1-Dim histograms (one short per channel)
 
@@ -489,6 +488,7 @@ public:
    TH1I(const char *name,const char *title,Int_t nbinsx,const Float_t  *xbins);
    TH1I(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins);
    TH1I(const TH1I &h1i);
+   TH1I& operator=(const TH1I &h1);
    virtual ~TH1I();
 
    virtual void     AddBinContent(Int_t bin);
@@ -497,7 +497,6 @@ public:
    virtual TH1     *DrawCopy(Option_t *option="") const;
    virtual void     Reset(Option_t *option="");
    virtual void     SetBinsLength(Int_t n=-1);
-           TH1I&    operator=(const TH1I &h1);
 
    ClassDef(TH1I,1)  //1-Dim histograms (one 32 bits integer per channel)
 
@@ -532,6 +531,7 @@ public:
    TH1F(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins);
    TH1F(const TVectorF &v);
    TH1F(const TH1F &h1f);
+   TH1F& operator=(const TH1F &h1);
    virtual ~TH1F();
 
    virtual void     AddBinContent(Int_t bin) {++fArray[bin];}
@@ -541,7 +541,6 @@ public:
    virtual TH1     *DrawCopy(Option_t *option="") const;
    virtual void     Reset(Option_t *option="");
    virtual void     SetBinsLength(Int_t n=-1);
-           TH1F&    operator=(const TH1F &h1);
 
    ClassDef(TH1F,1)  //1-Dim histograms (one float per channel)
 
@@ -576,6 +575,7 @@ public:
    TH1D(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins);
    TH1D(const TVectorD &v);
    TH1D(const TH1D &h1d);
+   TH1D& operator=(const TH1D &h1);
    virtual ~TH1D();
 
    virtual void     AddBinContent(Int_t bin) {++fArray[bin];}
@@ -585,7 +585,6 @@ public:
    virtual TH1     *DrawCopy(Option_t *option="") const;
    virtual void     Reset(Option_t *option="");
    virtual void     SetBinsLength(Int_t n=-1);
-           TH1D&    operator=(const TH1D &h1);
 
    ClassDef(TH1D,1)  //1-Dim histograms (one double per channel)
 
diff --git a/hist/hist/inc/TH2.h b/hist/hist/inc/TH2.h
index 9d34aa5c03e7d1e16e5fd98801c2eff02097f9be..7268b973affc7fbf587bd0447b8fb4acbb7299d7 100644
--- a/hist/hist/inc/TH2.h
+++ b/hist/hist/inc/TH2.h
@@ -62,8 +62,12 @@ protected:
    Int_t    Fill(Double_t); //MayNotUse
    Int_t    Fill(const char*, Double_t) { return Fill(0);}  //MayNotUse
 
-public:
+private:
+
    TH2(const TH2&);
+   TH2& operator=(const TH2&); // Not implemented
+
+public:
    virtual ~TH2();
    virtual Int_t    BufferEmpty(Int_t action=0);
    virtual void     Copy(TObject &hnew) const;
diff --git a/hist/hist/inc/TH3.h b/hist/hist/inc/TH3.h
index 3a8a43c488f217aa36043593621d2c69cd0a3d7d..82f0651cf0e6c12a5accb666c63ae184e11a3556 100644
--- a/hist/hist/inc/TH3.h
+++ b/hist/hist/inc/TH3.h
@@ -66,8 +66,12 @@ protected:
    Int_t    Fill(const char*,Double_t,Double_t) {return Fill(0);} //MayNotUse
    Int_t    Fill(const char*,const char*,Double_t) {return Fill(0);} //MayNotUse
 
-public:
+private: 
+
    TH3(const TH3&);
+   TH3& operator=(const TH3&); // Not implemented   
+
+public:
    virtual ~TH3();
    virtual Int_t    BufferEmpty(Int_t action=0);
    virtual void     Copy(TObject &hnew) const;