diff --git a/GUI/View/Fit/FitSessionWidget.cpp b/GUI/View/Fit/FitSessionWidget.cpp
index 3193245cc943b81a4f12319b1c9ada5723f599d8..054ae62416bae920fe365c2993453d4a77234a73 100644
--- a/GUI/View/Fit/FitSessionWidget.cpp
+++ b/GUI/View/Fit/FitSessionWidget.cpp
@@ -33,12 +33,19 @@ FitSessionWidget::FitSessionWidget(QWidget* parent)
     layout->setContentsMargins(0, 0, 0, 0);
     layout->setContentsMargins(0, 0, 0, 0);
     layout->setSpacing(0);
-    auto* tabWidget = new QTabWidget(this);
-    tabWidget->addTab(m_fitParametersWidget, "Fit Parameters");
-    tabWidget->addTab(m_minimizerSettingsWidget, "Minimizer");
+    m_tabWidget = new QTabWidget(this);
+    m_tabWidget->addTab(m_fitParametersWidget, "Fit Parameters");
+    m_tabWidget->addTab(m_minimizerSettingsWidget, "Minimizer");
 
-    layout->addWidget(tabWidget);
+    layout->addWidget(m_tabWidget);
     layout->addWidget(m_controlWidget);
+
+    applySettings();
+}
+
+FitSessionWidget::~FitSessionWidget()
+{
+    saveSettings();
 }
 
 void FitSessionWidget::setJobItem(JobItem* jobItem)
@@ -81,3 +88,22 @@ void FitSessionWidget::onFittingError(const QString& text)
 {
     m_controlWidget->onFittingError(text);
 }
+
+void FitSessionWidget::applySettings()
+{
+    QSettings settings;
+    if (settings.childGroups().contains(GUI::Constants::S_FIT_SESSION_WIDGET)) {
+        settings.beginGroup(GUI::Constants::S_FIT_SESSION_WIDGET);
+        m_tabWidget->setCurrentIndex(settings.value(GUI::Constants::S_FIT_SESSION_WIDGET_CURRENT_TAB).toInt());
+        settings.endGroup();
+    }
+}
+
+void FitSessionWidget::saveSettings()
+{
+    QSettings settings;
+    settings.beginGroup(GUI::Constants::S_FIT_SESSION_WIDGET);
+    settings.setValue(GUI::Constants::S_FIT_SESSION_WIDGET_CURRENT_TAB, m_tabWidget->currentIndex());
+    settings.endGroup();
+    settings.sync();
+}
diff --git a/GUI/View/Fit/FitSessionWidget.h b/GUI/View/Fit/FitSessionWidget.h
index f467a1de28107d0d4c2ee719f22f638fef70445d..a26e2e264ad595d5c293ba03653744e878821f6e 100644
--- a/GUI/View/Fit/FitSessionWidget.h
+++ b/GUI/View/Fit/FitSessionWidget.h
@@ -23,6 +23,7 @@ class FitParameterWidget;
 class MinimizerSettingsWidget;
 class ParameterTuningWidget;
 class FitSessionController;
+class QTabWidget;
 
 //! Contains all fit settings for given JobItem (fit parameters,
 //! minimizer settings). Controlled by FitActivityPanel.
@@ -32,6 +33,7 @@ class FitSessionWidget : public QWidget {
 
 public:
     FitSessionWidget(QWidget* parent = nullptr);
+    ~FitSessionWidget();
 
     void setJobItem(JobItem* jobItem);
     void setModelTuningWidget(ParameterTuningWidget* tuningWidget);
@@ -40,6 +42,10 @@ public:
 private:
     void onFittingError(const QString& text);
 
+    void applySettings();
+    void saveSettings();
+
+    QTabWidget* m_tabWidget;
     RunFitControlWidget* m_controlWidget;
     FitParameterWidget* m_fitParametersWidget;
     MinimizerSettingsWidget* m_minimizerSettingsWidget;
diff --git a/GUI/View/Tool/mainwindow_constants.h b/GUI/View/Tool/mainwindow_constants.h
index b45d37a119167380da3dcdb63490696709f1bb03..7355efd4f27cad3ba3d36f36d11cc88745732806 100644
--- a/GUI/View/Tool/mainwindow_constants.h
+++ b/GUI/View/Tool/mainwindow_constants.h
@@ -25,6 +25,7 @@ const char S_JOB_MESSAGE_PANEL[] = "JobMessagePanel";
 const char S_JOB_SELECTOR_PANEL[] = "JobSelectorPanel";
 const char S_FIT_ACTIVITY_PANEL[] = "FitActivityPanel";
 const char S_SESSION_MODEL_VIEW[] = "SessionModelView";
+const char S_FIT_SESSION_WIDGET[] = "FitSessionWidget";
 
 // Settings keys
 const char S_WINDOW_SIZE[] = "size";
@@ -35,6 +36,7 @@ const char S_JOB_MESSAGE_PANEL_HEIHGT[] = "height";
 const char S_JOB_SELECTOR_PANEL_WIDTH[] = "width";
 const char S_JOB_SELECTOR_SPLITTER_SIZES[] = "splitter_sizes";
 const char S_FIT_ACTIVITY_PANEL_SIZE[] = "size";
+const char S_FIT_SESSION_WIDGET_CURRENT_TAB[] = "current_tab";
 
 const int MAX_RECENT_PROJECTS = 10;