Index: src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision 919d47c0f413e608158ffdb010cb1a99e546d853)
+++ src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision 8eaa10114e164c68d8cbea7332a98edfe3ff2ce3)
@@ -484,5 +484,5 @@
 
         # Extract changed value.
-        if model_column == self.lstPoly.itemDelegate().POLY_PARAMETER:
+        if model_column == self.lstPoly.itemDelegate().poly_parameter:
             # Is the parameter checked for fitting?
             value = item.checkState()
@@ -494,5 +494,5 @@
                     self.parameters_to_fit.remove(parameter_name)
             return
-        elif model_column in [self.lstPoly.itemDelegate().POLY_MIN, self.lstPoly.itemDelegate().POLY_MAX]:
+        elif model_column in [self.lstPoly.itemDelegate().poly_min, self.lstPoly.itemDelegate().poly_max]:
             try:
                 value = float(item.text())
@@ -505,5 +505,5 @@
             current_details = self.kernel_module.details[parameter_name]
             current_details[model_column-1] = value
-        elif model_column == self.lstPoly.itemDelegate().POLY_FUNCTION:
+        elif model_column == self.lstPoly.itemDelegate().poly_function:
             # name of the function - just pass
             return
@@ -519,5 +519,5 @@
             # PD[ratio] -> width, npts -> npts, nsigs -> nsigmas
             self.kernel_module.setParam(parameter_name + '.' + \
-                                        self.lstPoly.itemDelegate().POLY_COLUMN_DICT[model_column], value)
+                                        self.lstPoly.itemDelegate().columnDict()[model_column], value)
 
     def onHelp(self):
@@ -790,17 +790,5 @@
             return
 
-        # Duck type delegate variables
-        self.lstPoly.itemDelegate().POLY_MIN = 3
-        self.lstPoly.itemDelegate().POLY_MAX = 4
-        self.lstPoly.itemDelegate().POLY_NPTS = 5
-        self.lstPoly.itemDelegate().POLY_NSIGS = 6
-        self.lstPoly.itemDelegate().POLY_FUNCTION = 7
-        self.lstPoly.itemDelegate().POLY_COLUMN_DICT = {
-            2: 'width',
-            3: 'min',
-            4: 'max',
-            5: 'npts',
-            6: 'nsigmas'}
-
+        self.lstPoly.itemDelegate().addErrorColumn()
         error_column = []
         self.iterateOverModel(createErrorColumn)
@@ -1361,6 +1349,6 @@
         self._poly_model.blockSignals(False)
 
-        npts_index = self._poly_model.index(row_index, self.lstPoly.itemDelegate().POLY_NPTS)
-        nsigs_index = self._poly_model.index(row_index, self.lstPoly.itemDelegate().POLY_NSIGS)
+        npts_index = self._poly_model.index(row_index, self.lstPoly.itemDelegate().poly_npts)
+        nsigs_index = self._poly_model.index(row_index, self.lstPoly.itemDelegate().poly_nsigs)
 
         npts = POLYDISPERSITY_MODELS[str(combo_string)].default['npts']
Index: src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py	(revision 70080a0773d0d0223f39889b9b1e931014f175da)
+++ src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py	(revision 8eaa10114e164c68d8cbea7332a98edfe3ff2ce3)
@@ -99,6 +99,6 @@
         delegate = fittingWindow.lstPoly.itemDelegate()
         self.assertEqual(len(delegate.POLYDISPERSE_FUNCTIONS), 5)
-        self.assertEqual(delegate.POLY_EDITABLE_PARAMS, [2, 3, 4, 5])
-        self.assertEqual(delegate.POLY_FUNCTION, 6)
+        self.assertEqual(delegate.editableParameters(), [2, 3, 4, 5])
+        self.assertEqual(delegate.poly_function, 6)
         self.assertIsInstance(delegate.combo_updated, QtCore.pyqtBoundSignal)
 
Index: src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py	(revision 919d47c0f413e608158ffdb010cb1a99e546d853)
+++ src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py	(revision 8eaa10114e164c68d8cbea7332a98edfe3ff2ce3)
@@ -82,23 +82,44 @@
     Custom delegate for appearance and behavior control of the polydispersity view
     """
-    # polydispersity functions
-    POLYDISPERSE_FUNCTIONS=['rectangle', 'array', 'lognormal', 'gaussian', 'schulz']
-    # polydispersity columns
-    POLY_PARAMETER=0
-    POLY_PD=1
-    POLY_MIN=2
-    POLY_MAX=3
-    POLY_NPTS=4
-    POLY_NSIGS=5
-    POLY_FUNCTION=6
-    POLY_EDITABLE_PARAMS = [POLY_MIN, POLY_MAX, POLY_NPTS, POLY_NSIGS]
-    POLY_COLUMN_DICT = {
-        POLY_PD:    'width',
-        POLY_MIN:   'min',
-        POLY_MAX:   'max',
-        POLY_NPTS:  'npts',
-        POLY_NSIGS: 'nsigmas'}
+    POLYDISPERSE_FUNCTIONS = ['rectangle', 'array', 'lognormal', 'gaussian', 'schulz']
 
     combo_updated = QtCore.pyqtSignal(str, int)
+
+    def __init__(self, parent=None):
+        """
+        Overwrite generic constructor to allow for some globals
+        """
+        super(QtGui.QStyledItemDelegate, self).__init__()
+
+        self.poly_parameter = 0
+        self.poly_pd = 1
+        self.poly_min = 2
+        self.poly_max = 3
+        self.poly_npts = 4
+        self.poly_nsigs = 5
+        self.poly_function = 6
+
+    def editableParameters(self):
+        return [self.poly_min, self.poly_max, self.poly_npts, self.poly_nsigs]
+
+    def columnDict(self):
+        return {self.poly_pd:    'width',
+                self.poly_min:   'min',
+                self.poly_max:   'max',
+                self.poly_npts:  'npts',
+                self.poly_nsigs: 'nsigmas'}
+
+    def addErrorColumn(self):
+        """
+        Modify local column pointers
+        Note: the reverse is never required!
+        """
+        self.poly_parameter = 0
+        self.poly_pd = 1
+        self.poly_min = 3
+        self.poly_max = 4
+        self.poly_npts = 5
+        self.poly_nsigs = 6
+        self.poly_function = 7
 
     def createEditor(self, widget, option, index):
@@ -107,5 +128,5 @@
         if not index.isValid():
             return 0
-        if index.column() == self.POLY_FUNCTION:
+        if index.column() == self.poly_function:
             editor = QtGui.QComboBox(widget)
             for function in self.POLYDISPERSE_FUNCTIONS:
@@ -115,5 +136,5 @@
             editor.currentIndexChanged.connect(lambda: self.combo_updated.emit(str(editor.currentText()), index.row()))
             return editor
-        elif index.column() in self.POLY_EDITABLE_PARAMS:
+        elif index.column() in self.editableParameters():
             editor = QtGui.QLineEdit(widget)
             validator = QtGui.QDoubleValidator()
@@ -127,5 +148,5 @@
         Overwrite generic painter for certain columns
         """
-        if index.column() in (self.POLY_MIN, self.POLY_MAX):
+        if index.column() in (self.poly_min, self.poly_max):
             # Units - present in nice HTML
             options = QtGui.QStyleOptionViewItemV4(option)
