diff --git a/GUI/coregui/Models/ParameterTreeItems.cpp b/GUI/coregui/Models/ParameterTreeItems.cpp
index fde54398168f9a549ae731e5da6aa70cc81ba814..81d3defee7f9f28b1bcd1ca5326e685a8df432cb 100644
--- a/GUI/coregui/Models/ParameterTreeItems.cpp
+++ b/GUI/coregui/Models/ParameterTreeItems.cpp
@@ -21,6 +21,10 @@
 #include "SessionModel.h"
 #include "SphericalDetectorItem.h"
 
+namespace {
+bool containsNames(const QString& text, const QStringList& names);
+}
+
 // ----------------------------------------------------------------------------
 
 ParameterLabelItem::ParameterLabelItem()
@@ -81,55 +85,52 @@ void ParameterItem::restoreFromBackup()
 
 bool ParameterItem::isFittable() const
 {
-    static const QStringList application_scope {
-        Constants::GISASInstrumentType,
-        Constants::OffSpecInstrumentType,
-        Constants::SpecularInstrumentType
-    };
-
-    static const QStringList fitting_black_list {
-        // distribution types
-        Constants::DistributionGateType,
-        Constants::DistributionLorentzType,
-        Constants::DistributionGaussianType,
-        Constants::DistributionLogNormalType,
-        Constants::DistributionCosineType,
-        Constants::DistributionTrapezoidType,
-
-        // axes
-        SphericalDetectorItem::P_PHI_AXIS,
-        SphericalDetectorItem::P_ALPHA_AXIS,
-        RectangularDetectorItem::P_X_AXIS,
-        RectangularDetectorItem::P_Y_AXIS,
-        OffSpecInstrumentItem::P_ALPHA_AXIS,
-
-         // rectangular detector positioning
-         RectangularDetectorItem::P_ALIGNMENT,
-         RectangularDetectorItem::P_NORMAL,
-         RectangularDetectorItem::P_DIRECTION,
-         RectangularDetectorItem::P_U0,
-         RectangularDetectorItem::P_V0,
-         RectangularDetectorItem::P_DBEAM_U0,
-         RectangularDetectorItem::P_DBEAM_V0,
-         RectangularDetectorItem::P_DISTANCE,
-
-         // Detector resolution
-         Constants::ResolutionFunction2DGaussianType
+    static const std::map<QStringList, QStringList> black_list {
+        {// global scope
+         {QString()},
+         {Constants::DistributionSigmaFactor}
+        },
+
+        {// instrument scope
+         {
+          Constants::GISASInstrumentType,
+          Constants::OffSpecInstrumentType,
+          Constants::SpecularInstrumentType
+         },
+         {// distribution types
+          Constants::DistributionGateType, Constants::DistributionLorentzType,
+          Constants::DistributionGaussianType, Constants::DistributionLogNormalType,
+          Constants::DistributionCosineType, Constants::DistributionTrapezoidType,
+
+          // axes
+          SphericalDetectorItem::P_PHI_AXIS, SphericalDetectorItem::P_ALPHA_AXIS,
+          RectangularDetectorItem::P_X_AXIS, RectangularDetectorItem::P_Y_AXIS,
+          OffSpecInstrumentItem::P_ALPHA_AXIS,
+
+          // rectangular detector positioning
+          RectangularDetectorItem::P_ALIGNMENT, RectangularDetectorItem::P_NORMAL,
+          RectangularDetectorItem::P_DIRECTION, RectangularDetectorItem::P_U0,
+          RectangularDetectorItem::P_V0, RectangularDetectorItem::P_DBEAM_U0,
+          RectangularDetectorItem::P_DBEAM_V0, RectangularDetectorItem::P_DISTANCE,
+
+          // Detector resolution
+          Constants::ResolutionFunction2DGaussianType
+         }
+        }
     };
 
     Q_ASSERT(ModelPath::ancestor(this, Constants::JobItemType));
 
     const QString& par_path = FitParameterHelper::getParameterItemPath(this);
 
-    bool is_in_scope = false;
-    for (const auto& name : application_scope)
-        if (par_path.contains(name))
-            is_in_scope = true;
-
-    if (is_in_scope) {
-        for (const auto& name : fitting_black_list)
-            if (par_path.contains(name))
+    for (const auto& item : black_list) {
+        if (item.first.size() == 1 && item.first[0].isNull()) { // checking global scope
+            if (containsNames(par_path, item.second))
                 return false;
+        } else { // checking everything else
+            if (containsNames(par_path, item.first) && containsNames(par_path, item.second))
+                return false;
+        }
     }
 
     return true;
@@ -144,3 +145,13 @@ ParameterContainerItem::ParameterContainerItem()
     registerTag(T_CHILDREN, 0, -1, QStringList() << Constants::ParameterLabelType);
     setDefaultTag(T_CHILDREN);
 }
+
+namespace {
+bool containsNames(const QString& text, const QStringList& names)
+{
+    for (const auto& name : names)
+        if (text.contains(name))
+            return true;
+    return false;
+}
+}