diff --git a/GUI/Model/Job/MinimizerItem.cpp b/GUI/Model/Job/MinimizerItem.cpp
index 54db6669c31c0829ae3e27b58fd7b08049c1e655..19dc86ad608fbbea04412b9a3b1e764d974da41f 100644
--- a/GUI/Model/Job/MinimizerItem.cpp
+++ b/GUI/Model/Job/MinimizerItem.cpp
@@ -43,10 +43,9 @@ void add_algorithm_from_minimizer_to_list_and_map(const QString& minimizer,
     ASSERT(algorithms.size() == descriptions.size())
 
     for (int i = 0; i < algorithms.size(); i++) {
-        QString name = "   " + algorithms[i];
-        common_algorithms_list.append(name);
+        common_algorithms_list.append(algorithms[i]);
         common_algorithms_descriptions.append(descriptions[i]);
-        algorithm_minimizer_map.insert(name, minimizer_names_map.key(minimizer));
+        algorithm_minimizer_map.insert(algorithms[i], minimizer_names_map.key(minimizer));
     }
 }
 void create_algorithm_list_and_map(QString& default_common_algorithm, QStringList& algorithms_list,
@@ -90,7 +89,7 @@ void create_algorithm_list_and_map(QString& default_common_algorithm, QStringLis
     add_algorithm_from_minimizer_to_list_and_map(GSLLMAMinimizerItem::M_TYPE, algorithms_list,
                                                  algorithms_descriptions);
 
-    default_common_algorithm = algorithms_list[1]; // after the first header
+    default_common_algorithm = algorithms_list[1]; // after the first header: Minuit2 Migrad
 }
 #endif
 
@@ -204,12 +203,33 @@ void MinimizerContainerItem::setCurrentCommonAlgorithm(const QString& name)
 
     ASSERT(algorithmHasMinimizer(name));
     setCurrentMinimizer(algorithm_minimizer_map.value(name));
+    applyAlgorithmToMinimizer(name);
 }
 
 ComboProperty MinimizerContainerItem::commonAlgorithmCombo() const
 {
     return getItemValue(P_COMMON_ALGORITHMS).value<ComboProperty>();
 }
+
+void MinimizerContainerItem::applyAlgorithmToMinimizer(const QString &name)
+{
+    // Minuit2
+    if (currentMinimizerM_TYPE() == MinuitMinimizerItem::M_TYPE)
+        minimizerItemMinuit()->setCurrentAlgorithm(name);
+
+    // GSL MultiMin
+    if (currentMinimizerM_TYPE() == GSLMultiMinimizerItem::M_TYPE)
+        minimizerItemGSLMulti()->setCurrentAlgorithm(name);
+
+    // TMVA Genetic
+    // do nothing
+
+    // GSL Simulated Annealing
+    // do nothing
+
+    // GSL Levenberg-Marquardt
+    // do nothing
+}
 #endif
 QString MinimizerContainerItem::currentObjectiveMetric() const
 {
diff --git a/GUI/Model/Job/MinimizerItem.h b/GUI/Model/Job/MinimizerItem.h
index e3764fac84eee8670c6a0d1f91a47c1cd8f49de1..8f6cb5868d596708da0c03fd909891a130c5c356 100644
--- a/GUI/Model/Job/MinimizerItem.h
+++ b/GUI/Model/Job/MinimizerItem.h
@@ -70,6 +70,7 @@ public:
     bool algorithmHasMinimizer(const QString& name);
     void setCurrentCommonAlgorithm(const QString& name);
     ComboProperty commonAlgorithmCombo() const;
+    void applyAlgorithmToMinimizer(const QString& name);
 #endif
 
     // Objective metric to use for estimating distance between simulated and experimental data
diff --git a/GUI/View/Fit/MinimizerSettingsWidget.cpp b/GUI/View/Fit/MinimizerSettingsWidget.cpp
index cb3d9fd922dd59d5a4782d53ba27618831bba014..a2abafef49f9a244203f746a6b258caa6397a6a9 100644
--- a/GUI/View/Fit/MinimizerSettingsWidget.cpp
+++ b/GUI/View/Fit/MinimizerSettingsWidget.cpp
@@ -139,6 +139,7 @@ void MinimizerSettingsWidget::createGroupedAlgorithmsCombo()
             int prev = comboBox->currentIndex() - 2;
             int next = comboBox->currentIndex() + 2;
 
+            QSignalBlocker b(comboBox);
             if (previous_state < comboBox->currentIndex() && next < comboBox->count())
                 comboBox->setCurrentIndex(next);
             else if (previous_state > comboBox->currentIndex() && prev >= 0)