Index: TH1.cxx =================================================================== RCS file: /user/cvs/root/hist/src/TH1.cxx,v retrieving revision 1.330 diff -u -w -r1.330 TH1.cxx --- TH1.cxx 3 Feb 2007 06:40:25 -0000 1.330 +++ TH1.cxx 4 Feb 2007 20:39:49 -0000 @@ -5057,18 +5057,20 @@ // Save old bin contents into a new array Double_t entries = fEntries; Double_t *oldBins = new Double_t[nbins+2]; - Int_t bin, i; - for (bin=0;bin 0) || xbins) { hnew = (TH1*)Clone(newname); + isCloned=kTRUE; } // change axis specs and rebuild bin contents array::RebinAx @@ -5117,12 +5119,14 @@ // copy merged bin contents (ignore under/overflows) Int_t oldbin = 1; Double_t binContent, binError; - for (bin = 1;bin<=newbins;bin++) { + for (Int_t bin = 1;bin<=newbins;bin++) { binContent = 0; binError = 0; Int_t imax = ngroup; - for (i=0;i hnew->GetXaxis()->GetBinUpEdge(bin)) { + Float_t binmax = hnew->GetXaxis()->GetBinUpEdge(bin); + for (Int_t i=0;i nbins)) || + ( isCloned && (fXaxis.GetBinCenter(oldbin+i) > binmax)) ){ imax = i; break; } @@ -5131,6 +5135,7 @@ } hnew->SetBinContent(bin,binContent); if (oldErrors) hnew->SetBinError(bin,TMath::Sqrt(binError)); + oldbin += imax; } hnew->SetBinContent(0,oldBins[0]);