Index: src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py	(revision 88ada066d2c1982aab1c168b079953a2f3430937)
+++ src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py	(revision a758043bd7e66e39f3a1fd1607a3d28dddaee254)
@@ -91,7 +91,9 @@
     return cbox
 
-def addParametersToModel(model, view, parameters, kernel_module, is2D):
-    """
-    Update local ModelModel with sasmodel parameters
+def addParametersToModel(parameters, kernel_module, is2D, model=None, view=None):
+    """
+    Update local ModelModel with sasmodel parameters.
+    Actually appends to model, if model and view params are not None.
+    Always returns list of lists of QStandardItems.
     """
     multishell_parameters = getIterParams(parameters)
@@ -103,4 +105,5 @@
         params = parameters.iq_parameters
 
+    rows = []
     for param in params:
         # don't include shell parameters
@@ -156,9 +159,13 @@
 
         # Append to the model and use the combobox, if required
-        model.appendRow(row)
-        if cbox is not None:
-            view.setIndexWidget(item2.index(), cbox)
-
-def addSimpleParametersToModel(model, view, parameters, is2D):
+        if None not in (model, view):
+            model.appendRow(row)
+            if cbox:
+                view.setIndexWidget(item2.index(), cbox)
+        rows.append(row)
+
+    return rows
+
+def addSimpleParametersToModel(parameters, is2D, model=None, view=None):
     """
     Update local ModelModel with sasmodel parameters (non-dispersed, non-magnetic)
@@ -169,4 +176,5 @@
         params = parameters.iq_parameters
 
+    rows = []
     for param in params:
         # Create the top level, checkable item
@@ -189,7 +197,11 @@
 
         # Append to the model and use the combobox, if required
-        model.appendRow(row)
-        if cbox is not None:
-            view.setIndexWidget(item2.index(), cbox)
+        if None not in (model, view):
+            model.appendRow(row)
+            if cbox:
+                view.setIndexWidget(item2.index(), cbox)
+        rows.append(row)
+
+    return rows
 
 def markParameterDisabled(model, row):
@@ -271,5 +283,5 @@
     model.header_tooltips = copy.copy(poly_header_error_tooltips)
 
-def addShellsToModel(parameters, model, view, index):
+def addShellsToModel(parameters, model, index, view=None):
     """
     Find out multishell parameters and update the model with the requested number of them
@@ -277,4 +289,5 @@
     multishell_parameters = getIterParams(parameters)
 
+    rows = []
     for i in range(index):
         for par in multishell_parameters:
@@ -309,8 +322,14 @@
             cbox = createFixedChoiceComboBox(par, row)
 
-            # Append to the model and use the combobox, if required
+            # Always append to the model
             model.appendRow(row)
-            if cbox is not None:
+
+            # Apply combobox if required
+            if None not in (view, cbox):
                 view.setIndexWidget(item2.index(), cbox)
+
+            rows.append(row)
+
+    return rows
 
 def calculateChi2(reference_data, current_data):
Index: src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision 88ada066d2c1982aab1c168b079953a2f3430937)
+++ src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision a758043bd7e66e39f3a1fd1607a3d28dddaee254)
@@ -2051,9 +2051,9 @@
         # Update the QModel
         FittingUtilities.addParametersToModel(
-                self._model_model,
-                self.lstParams,
                 self.model_parameters,
                 self.kernel_module,
-                self.is2D)
+                self.is2D,
+                self._model_model,
+                self.lstParams)
 
         # Update the counter used for multishell display
@@ -2076,8 +2076,8 @@
         # Update the QModel
         FittingUtilities.addSimpleParametersToModel(
+                structure_parameters,
+                self.is2D,
                 self._model_model,
-                self.lstParams,
-                structure_parameters,
-                self.is2D)
+                self.lstParams)
 
         # Any parameters removed from the structure factor when producing the product model, e.g. radius_effective, must
@@ -2712,6 +2712,6 @@
                 self.model_parameters,
                 self._model_model,
-                self.lstParams,
-                index)
+                index,
+                self.lstParams)
 
         self.current_shell_displayed = index
