diff --git a/GUI/Model/Job/FitParameterContainerItem.cpp b/GUI/Model/Job/FitParameterContainerItem.cpp
index fdfbd157ff5e1979df55e070efb8afb16db02e3f..1d488715dfe7b44e57acf71f956f8210d3d5fc18 100644
--- a/GUI/Model/Job/FitParameterContainerItem.cpp
+++ b/GUI/Model/Job/FitParameterContainerItem.cpp
@@ -155,6 +155,21 @@ void FitParameterContainerItem::setValuesInParameterContainer(
     }
 }
 
+void FitParameterContainerItem::pullValuesFromParameterContainer(
+    ParameterContainerItem* parameterContainer)
+{
+    ASSERT(parameterContainer);
+
+    for (auto* fitPar : fitParameterItems()) {
+        auto link_list = fitPar->linkItems();
+        if (link_list.size()) {
+            FitParameterLinkItem* linkItem = link_list.last(); // update from last added link
+            if (auto* itemInTuningTree = parameterContainer->findParameterItem(linkItem->link()))
+                fitPar->setStartValue(itemInTuningTree->valueOfLink());
+        }
+    }
+}
+
 mumufit::Parameters FitParameterContainerItem::createParameters() const
 {
     mumufit::Parameters result;
diff --git a/GUI/Model/Job/FitParameterContainerItem.h b/GUI/Model/Job/FitParameterContainerItem.h
index 9befe3afd0d2401d7368aaceeec72edda52ef6ca..32db0f53925b3bf1a48230c1e933f33f523563a7 100644
--- a/GUI/Model/Job/FitParameterContainerItem.h
+++ b/GUI/Model/Job/FitParameterContainerItem.h
@@ -65,6 +65,8 @@ public:
     bool isEmpty();
     void setValuesInParameterContainer(const std::vector<double>& values,
                                        class ParameterContainerItem* parameterContainer);
+    void pullValuesFromParameterContainer(class ParameterContainerItem* parameterContainer);
+
     mumufit::Parameters createParameters() const;
 
     void writeTo(QXmlStreamWriter* w) const;
diff --git a/GUI/View/Fit/FitSessionController.cpp b/GUI/View/Fit/FitSessionController.cpp
index 4da7d28123bac8ea77fd9f03b438156d79344d06..4ec9bd17e393340613e071df2e36a8d2cb37ffce 100644
--- a/GUI/View/Fit/FitSessionController.cpp
+++ b/GUI/View/Fit/FitSessionController.cpp
@@ -165,6 +165,12 @@ void FitSessionController::updateFitParameterValues(const FitProgressInfo& info)
                                                    m_jobItem->parameterContainerItem());
 }
 
+void FitSessionController::updateStartValuesFromTree()
+{
+    FitParameterContainerItem* fitParContainer = m_jobItem->fitParameterContainerItem();
+    fitParContainer->pullValuesFromParameterContainer(m_jobItem->parameterContainerItem());
+}
+
 void FitSessionController::updateLog(const FitProgressInfo& info)
 {
     QString message = QString("NCalls:%1 chi2:%2 \n").arg(info.iterationCount()).arg(info.chi2());
diff --git a/GUI/View/Fit/FitSessionController.h b/GUI/View/Fit/FitSessionController.h
index fc61b739c426d62f771c3dfdedbc29e235e74138..2c7c28495d507a520b05d97922c119ff1af7605c 100644
--- a/GUI/View/Fit/FitSessionController.h
+++ b/GUI/View/Fit/FitSessionController.h
@@ -46,6 +46,7 @@ signals:
 public slots:
     void onStartFittingRequest();
     void onStopFittingRequest();
+    void updateStartValuesFromTree();
 
 private slots:
     void onObserverUpdate();
diff --git a/GUI/View/Fit/FitSessionWidget.cpp b/GUI/View/Fit/FitSessionWidget.cpp
index 6ebeeccdb94ba5f8ed6906677d7d58d3d7c925bf..e727c9f8b3330e93d62e5d733229ca073db1065c 100644
--- a/GUI/View/Fit/FitSessionWidget.cpp
+++ b/GUI/View/Fit/FitSessionWidget.cpp
@@ -41,6 +41,9 @@ FitSessionWidget::FitSessionWidget(QWidget* parent)
     layout->addWidget(m_tabWidget);
     layout->addWidget(m_controlWidget);
 
+    connect(m_controlWidget, &RunFitControlWidget::updFromTreePushed, m_fitParametersWidget,
+            &FitParameterWidget::updateView);
+
     applySettings();
 }
 
@@ -82,6 +85,8 @@ void FitSessionWidget::setSessionController(FitSessionController* sessionControl
                 &FitSessionController::onStartFittingRequest);
         connect(m_controlWidget, &RunFitControlWidget::stopFittingPushed, m_sessionController,
                 &FitSessionController::onStopFittingRequest);
+        connect(m_controlWidget, &RunFitControlWidget::updFromTreePushed, m_sessionController,
+                &FitSessionController::updateStartValuesFromTree);
     }
 }
 
diff --git a/GUI/View/FitControl/RunFitControlWidget.cpp b/GUI/View/FitControl/RunFitControlWidget.cpp
index ce9414631fbe64a50a19a8cd355a30b2820bb3cb..ea5096aa795b60bce6ab30c290a1fbd98717851c 100644
--- a/GUI/View/FitControl/RunFitControlWidget.cpp
+++ b/GUI/View/FitControl/RunFitControlWidget.cpp
@@ -37,6 +37,7 @@ RunFitControlWidget::RunFitControlWidget(QWidget* parent)
     : DataAccessWidget(parent)
     , m_startButton(new QPushButton)
     , m_stopButton(new QPushButton)
+    , m_updButton(new QPushButton)
     , m_intervalSlider(new QSlider)
     , m_updateIntervalLabel(new QLabel)
     , m_iterationsCountLabel(new QLabel)
@@ -53,6 +54,10 @@ RunFitControlWidget::RunFitControlWidget(QWidget* parent)
     m_stopButton->setToolTip("Interrupt fitting");
     m_stopButton->setMaximumWidth(80);
 
+    m_updButton->setText("Update start values");
+    m_updButton->setToolTip("Set the starting positions to the values from the parameter tree");
+    m_updButton->setMaximumWidth(130);
+
     m_intervalSlider->setToolTip(slider_tooltip);
     m_intervalSlider->setOrientation(Qt::Horizontal);
     m_intervalSlider->setRange(0, static_cast<int>(slider_to_interval.size()) - 1);
@@ -73,6 +78,8 @@ RunFitControlWidget::RunFitControlWidget(QWidget* parent)
     layout->addSpacing(5);
     layout->addWidget(m_stopButton);
     layout->addSpacing(5);
+    layout->addWidget(m_updButton);
+    layout->addSpacing(15);
     layout->addWidget(m_intervalSlider);
     layout->addSpacing(2);
     layout->addWidget(m_updateIntervalLabel);
@@ -81,8 +88,9 @@ RunFitControlWidget::RunFitControlWidget(QWidget* parent)
     layout->addWidget(m_iterationsCountLabel);
     setLayout(layout);
 
-    connect(m_startButton, &QPushButton::clicked, [&]() { startFittingPushed(); });
-    connect(m_stopButton, &QPushButton::clicked, this, [&]() { stopFittingPushed(); });
+    connect(m_startButton, &QPushButton::clicked, [&]() { emit startFittingPushed(); });
+    connect(m_stopButton, &QPushButton::clicked, this, [&]() { emit stopFittingPushed(); });
+    connect(m_updButton, &QPushButton::clicked, this, [&]() { emit updFromTreePushed(); });
     connect(m_intervalSlider, &QSlider::valueChanged, this,
             &RunFitControlWidget::onSliderValueChanged);
 
diff --git a/GUI/View/FitControl/RunFitControlWidget.h b/GUI/View/FitControl/RunFitControlWidget.h
index c0c33e604f518c0f329176536cf8ce88a4a1bae0..6303b9dc810bba2e888b010903acd24e599b208f 100644
--- a/GUI/View/FitControl/RunFitControlWidget.h
+++ b/GUI/View/FitControl/RunFitControlWidget.h
@@ -37,6 +37,7 @@ public:
 signals:
     void startFittingPushed();
     void stopFittingPushed();
+    void updFromTreePushed();
 
 public slots:
     void onFittingError(const QString& what);
@@ -57,6 +58,7 @@ private:
 
     QPushButton* m_startButton;
     QPushButton* m_stopButton;
+    QPushButton* m_updButton;
     QSlider* m_intervalSlider;
     QLabel* m_updateIntervalLabel;
     QLabel* m_iterationsCountLabel;
diff --git a/GUI/View/Tuning/FitParameterWidget.cpp b/GUI/View/Tuning/FitParameterWidget.cpp
index 0c87853b4fb6c794feaec791e2811cad7470aed3..8e67736b8c0be427fc01e790eeccd5576c79ec27 100644
--- a/GUI/View/Tuning/FitParameterWidget.cpp
+++ b/GUI/View/Tuning/FitParameterWidget.cpp
@@ -164,6 +164,11 @@ void FitParameterWidget::onFitParametersSelectionChanged(const QItemSelection& s
     }
 }
 
+void FitParameterWidget::updateView()
+{
+    m_treeView->update();
+}
+
 //! Creates fit parameters for all selected ParameterItem's in tuning widget
 
 void FitParameterWidget::onCreateFitParAction()
diff --git a/GUI/View/Tuning/FitParameterWidget.h b/GUI/View/Tuning/FitParameterWidget.h
index b3a7c001c762600c5b3a53852d896bc2d251087f..83407e706143a0bbfaf238f822d501fca90fced4 100644
--- a/GUI/View/Tuning/FitParameterWidget.h
+++ b/GUI/View/Tuning/FitParameterWidget.h
@@ -42,6 +42,7 @@ public slots:
     void onTuningWidgetContextMenu(const QPoint& point);
     void onFitParameterTreeContextMenu(const QPoint& point);
     void onFitParametersSelectionChanged(const QItemSelection& selection);
+    void updateView();
 
 private slots:
     void onCreateFitParAction();