Index: src/sas/qtgui/Perspectives/Fitting/FitPage.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FitPage.py	(revision 6066a3f03117feca1183eb9b58d642733e90d66e)
+++ src/sas/qtgui/Perspectives/Fitting/FitPage.py	(revision 6964d440b3929d111f810b55d203c17e2f424e4b)
@@ -30,4 +30,5 @@
         self.data = None
         self.parameters_to_fit = []
+        self.kernel_module = None
 
         # QModels
Index: src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py	(revision fd1ae6d13fef2c7657b038fea72a31b9f60b243a)
+++ src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py	(revision 6964d440b3929d111f810b55d203c17e2f424e4b)
@@ -275,12 +275,4 @@
         residuals.y = y
 
-    #try:
-    #    y = (fn - gn)/en
-    #    residuals.y = -y
-    #except ValueError:
-    #    msg = "ResidualPlot Error: different number of data points in theory"
-    #    print msg
-    #    y = (fn - gn[index][0]) / en
-    #    residuals.y = y
     residuals.x = current_data.x[index][0]
     residuals.dy = numpy.ones(len(residuals.y))
@@ -359,5 +351,4 @@
     return residuals
 
-
 def binary_encode(i, digits):
     return [i >> d & 1 for d in xrange(digits)]
Index: src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision fd1ae6d13fef2c7657b038fea72a31b9f60b243a)
+++ src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision 6964d440b3929d111f810b55d203c17e2f424e4b)
@@ -819,4 +819,5 @@
         weight = FittingUtilities.getWeight(data=data, is2d=self.is2D, flag=self.weighting)
         update_module = data.err_data if self.is2D else data.dy
+        # Overwrite relevant values in data
         update_module = weight
 
@@ -873,4 +874,5 @@
         # (Re)-create headers
         FittingUtilities.addHeadersToModel(self._model_model)
+        self.lstParams.header().setFont(self.boldFont)
 
         # Update Q Ranges
@@ -888,6 +890,9 @@
 
         # Explicitly add scale and background with default values
+        temp_undo_state = self.undo_supported
+        self.undo_supported = False
         self.addScaleToModel(self._model_model)
         self.addBackgroundToModel(self._model_model)
+        self.undo_supported = temp_undo_state
 
         # Update the QModel
@@ -920,4 +925,6 @@
             self.checkboxSelected(item)
             self.cmdFit.setEnabled(self.parameters_to_fit != [] and self.logic.data_is_loaded)
+            # Update state stack
+            self.updateUndo()
             return
 
@@ -1070,4 +1077,10 @@
         calc_thread = threads.deferToThread(method.compute)
         calc_thread.addCallback(self.methodCompleteForData())
+        calc_thread.addErrback(self.calculateDataFailed())
+
+    def calculateDataFailed(self):
+        """
+        """
+        print "Calculate Data failed."
 
     def complete1D(self, return_data):
@@ -1093,4 +1106,8 @@
         # Create a new index for holding data
         fitted_data.symbol = "Line"
+
+        # Modify fitted_data with weighting
+        self.addWeightingToData(fitted_data)
+
         self.createNewIndex(fitted_data)
         # Calculate difference between return_data and logic.data
@@ -1308,4 +1325,5 @@
         fp.chi2 = self.chi2
         fp.parameters_to_fit = self.parameters_to_fit
+        fp.kernel_module = self.kernel_module
 
         # Options tab
Index: src/sas/qtgui/Perspectives/Fitting/ModelThread.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/ModelThread.py	(revision dc5ef150e8b37e01a3b7e253eb5b66d3b82de99c)
+++ src/sas/qtgui/Perspectives/Fitting/ModelThread.py	(revision 6964d440b3929d111f810b55d203c17e2f424e4b)
@@ -229,14 +229,4 @@
         elapsed = time.time() - self.starttime
 
-        #self.complete(x=self.data.x[index], y=output[index],
-        #              page_id=self.page_id,
-        #              state=self.state,
-        #              weight=self.weight,
-        #              fid=self.fid,
-        #              toggle_mode_on=self.toggle_mode_on,
-        #              elapsed=elapsed, index=index, model=self.model,
-        #              data=self.data,
-        #              update_chisqr=self.update_chisqr,
-        #              source=self.source)
         return (self.data.x[index], output[index],
                 self.page_id,
Index: src/sas/qtgui/Perspectives/Fitting/UnitTesting/FitPageTest.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/UnitTesting/FitPageTest.py	(revision 672b8abd2842038913308d122b370e786e37660b)
+++ src/sas/qtgui/Perspectives/Fitting/UnitTesting/FitPageTest.py	(revision 6964d440b3929d111f810b55d203c17e2f424e4b)
@@ -30,4 +30,5 @@
         self.assertEqual(self.page.filename, "")
         self.assertIsNone(self.page.data)
+        self.assertIsNone(self.page.kernel_module)
         self.assertEqual(self.page.parameters_to_fit, [])
 
