diff --git a/fitpanel/src/TFitEditor.cxx b/fitpanel/src/TFitEditor.cxx
index 8c4aa1adef6561e8e8475eb3f21d3ce13664190f..057aaa21761593bb607b13507193fa6c3d34b08e 100644
--- a/fitpanel/src/TFitEditor.cxx
+++ b/fitpanel/src/TFitEditor.cxx
@@ -1,4 +1,4 @@
-// @(#)root/fitpanel:$Name:  $:$Id: TFitEditor.cxx,v 1.12 2006/11/20 08:10:22 brun Exp $
+// @(#)root/fitpanel:$Name:  $:$Id: TFitEditor.cxx,v 1.13 2006/11/23 15:09:27 antcheva Exp $
 // Author: Ilka Antcheva, Lorenzo Moneta 10/08/2006
 
 /*************************************************************************
@@ -220,7 +220,7 @@ TFitEditor::TFitEditor(TVirtualPad* pad, TObject *obj) :
    fConv->SetState(kButtonDisabled);
    fLayoutNone = new TGLayoutHints(kLHintsLeft,0,5,3,-10);
    fLayoutAdd  = new TGLayoutHints(kLHintsLeft,10,5,3,-10);
-   fLayoutConv = new TGLayoutHints(kLHintsLeft,10,0,3,-10);
+   fLayoutConv = new TGLayoutHints(kLHintsLeft,10,5,3,-10);
    bgr->SetLayoutHints(fLayoutNone,fNone);
    bgr->SetLayoutHints(fLayoutAdd,fAdd);
    bgr->SetLayoutHints(fLayoutConv,fConv);
@@ -651,6 +651,7 @@ void TFitEditor::ConnectSlots()
       fSliderZ->Connect("Pressed()","TFitEditor",this, "DoSliderZPressed()");
       fSliderZ->Connect("Released()","TFitEditor",this, "DoSliderZReleased()");
    }
+   fParentPad->Connect("RangeAxisChanged()", "TFitEditor", this, "UpdateGUI()");
 }
 
 //______________________________________________________________________________
@@ -717,6 +718,7 @@ void TFitEditor::DisconnectSlots()
       fSliderZ->Disconnect("Pressed()");
       fSliderZ->Disconnect("Released()");
    }
+   fParentPad->Disconnect("RangeAxisChanged()");
 }
 
 //______________________________________________________________________________
@@ -796,6 +798,9 @@ void TFitEditor::UpdateGUI()
 
    // sliders
    if (fDim > 0) {
+      fSliderX->Disconnect("PositionChanged()");
+      fSliderX->Disconnect("Pressed()");
+      fSliderX->Disconnect("Released()");
 
       switch (fType) {
          case kObjectHisto: {
@@ -839,13 +844,24 @@ void TFitEditor::UpdateGUI()
             break;
          }
       }
-      fSliderX->SetRange(1,fXrange);
-      fSliderX->SetPosition(fXmin,fXmax);
+      if (fXmin > 1 || fXmax < fXrange) {
+         fSliderX->SetRange(fXmin,fXmax);
+         fSliderX->SetPosition(fXmin, fXmax);
+      } else {
+         fSliderX->SetRange(1,fXrange);
+         fSliderX->SetPosition(fXmin,fXmax);
+      }
       fSliderX->SetScale(5);
+      fSliderX->Connect("PositionChanged()","TFitEditor",this, "DoSliderXMoved()");
+      fSliderX->Connect("Pressed()","TFitEditor",this, "DoSliderXPressed()");
+      fSliderX->Connect("Released()","TFitEditor",this, "DoSliderXReleased()");
    }
 
 /*  no implemented functionality for y & z sliders yet 
    if (fDim > 1) {
+      fSliderY->Disconnect("PositionChanged()");
+      fSliderY->Disconnect("Pressed()");
+      fSliderY->Disconnect("Released()");
 
       if (!fSliderYParent->IsMapped())
          fSliderYParent->MapWindow();
@@ -884,6 +900,10 @@ void TFitEditor::UpdateGUI()
    }
 
    if (fDim > 2) {
+      fSliderZ->Disconnect("PositionChanged()");
+      fSliderZ->Disconnect("Pressed()");
+      fSliderZ->Disconnect("Released()");
+
       if (!fSliderZParent->IsMapped())
          fSliderZParent->MapWindow();
 
@@ -1522,8 +1542,13 @@ void TFitEditor::DoReset()
       delete fFitFunc;
       fFitFunc = new TF1("fitFunc", fFunction.Data(), fXmin, fXmax);
    }
-   fSliderX->SetRange(1, fXrange);
-   fSliderX->SetPosition(fXmin, fXmax);
+   if (fXmin > 1 || fXmax < fXrange) {
+      fSliderX->SetRange(fXmin,fXmax);
+      fSliderX->SetPosition(fXmin, fXmax);
+   } else {
+      fSliderX->SetRange(1,fXrange);
+      fSliderX->SetPosition(fXmin,fXmax);
+   }
    fPlus = '+';
    if (fLinearFit->GetState() == kButtonDown)
       fLinearFit->SetState(kButtonUp, kFALSE);