Index: src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision 4992ff2626be19df7de9e5dfc0078b96bf47a75e)
+++ src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision fbfc488f82ca4192217ad32b69f00fc4a4e137ab)
@@ -61,5 +61,5 @@
         QtGui.QStandardItemModel.__init__(self,parent)
 
-    def headerData(self, section, orientation, role):
+    def headerData(self, section, orientation, role=QtCore.Qt.DisplayRole):
         """
         Displays tooltip for each column's header
@@ -592,5 +592,5 @@
         elif model_column in [self.lstPoly.itemDelegate().poly_min, self.lstPoly.itemDelegate().poly_max]:
             try:
-                value = float(item.text())
+                value = GuiUtils.toDouble(item.text())
             except ValueError:
                 # Can't be converted properly, bring back the old value and exit
@@ -607,5 +607,5 @@
         else:
             try:
-                value = float(item.text())
+                value = GuiUtils.toDouble(item.text())
             except ValueError:
                 # Can't be converted properly, bring back the old value and exit
@@ -624,5 +624,5 @@
         model_row = item.row()
         name_index = self._magnet_model.index(model_row, 0)
-        parameter_name = str(self._magnet_model.data(name_index).toPyObject())
+        parameter_name = str(self._magnet_model.data(name_index))
 
         if model_column == 0:
@@ -640,10 +640,10 @@
         # Extract changed value.
         try:
-            value = float(item.text())
+            value = GuiUtils.toDouble(item.text())
         except ValueError:
             # Unparsable field
             return
 
-        property_index = self._magnet_model.headerData(0, 1, model_column).toInt()[0]-1 # Value, min, max, etc.
+        property_index = self._magnet_model.headerData(1, model_column)-1 # Value, min, max, etc.
 
         # Update the parameter value - note: this supports +/-inf as well
@@ -1304,9 +1304,10 @@
         # Extract changed value.
         try:
-            value = float(item.text())
+            value = GuiUtils.toDouble(item.text())
         except ValueError:
             # Unparsable field
             return
-        parameter_name = str(self._model_model.data(name_index)) #.toPyObject()) # sld, background etc.
+
+        parameter_name = str(self._model_model.data(name_index)) # sld, background etc.
 
         # Update the parameter value - note: this supports +/-inf as well
@@ -1687,7 +1688,7 @@
         datafile = QtWidgets.QFileDialog.getOpenFileName(
             self, "Choose a weight file", "", "All files (*.*)", None,
-            QtWidgets.QFileDialog.DontUseNativeDialog)
-
-        if datafile is None or str(datafile)=='':
+            QtWidgets.QFileDialog.DontUseNativeDialog)[0]
+
+        if not datafile:
             logging.info("No weight data chosen.")
             raise IOError
Index: src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py	(revision 7969b9cd4da902481490aee839cad862a47ed05a)
+++ src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py	(revision fbfc488f82ca4192217ad32b69f00fc4a4e137ab)
@@ -4,4 +4,10 @@
 
 import sas.qtgui.Utilities.GuiUtils as GuiUtils
+
+class CommaLessValidator(QtGui.QDoubleValidator):
+    """
+    Custom double validator which doesn't allow for commas to be used as decimal point
+    """
+    pass
 
 class ModelViewDelegate(QtWidgets.QStyledItemDelegate):
@@ -44,5 +50,4 @@
         if index.column() in self.fancyColumns():
             # Units - present in nice HTML
-            #options = QtWidgets.QStyleOptionViewItemV4(option)
             options = QtWidgets.QStyleOptionViewItem(option)
             self.initStyleOption(options,index)
@@ -236,5 +241,5 @@
     def createEditor(self, widget, option, index):
         # Remember the current choice
-        current_text = index.data().toString()
+        current_text = index.data()
         if not index.isValid():
             return 0
