Index: fittingview/src/sans/perspectives/fitting/fitproblem.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/fitproblem.py	(revision 41661a0e6555997634d428aedc26a69d76f07d43)
+++ fittingview/src/sans/perspectives/fitting/fitproblem.py	(revision eb4f2fd9f58accb9e5c8370a5a4aa249b4a52407)
@@ -580,6 +580,4 @@
         self.theory_data = copy.deepcopy(data)
         
-  
-         
     def get_theory_data(self):
         """
Index: fittingview/src/sans/perspectives/fitting/fitting.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/fitting.py	(revision 41661a0e6555997634d428aedc26a69d76f07d43)
+++ fittingview/src/sans/perspectives/fitting/fitting.py	(revision eb4f2fd9f58accb9e5c8370a5a4aa249b4a52407)
@@ -1060,4 +1060,6 @@
                 batch_inputs["error on %s" % pars[index]] = []
             for res in result:
+                model, data = res.inputs[0]
+                temp_model = model.clone()
                 if res is None:
                     null_value = numpy.nan
@@ -1072,4 +1074,8 @@
                         item = null_value
                         batch_inputs["error on %s" % pars[index]].append(item)
+                        """
+                        if pars[index] in model.getParamList():
+                            model.setParam(pars[index], res.pvec[index])
+                            """
                 else:
                     from sans.guiframe.data_processor import BatchCell
@@ -1082,18 +1088,22 @@
                         item = res.stderr[index]
                         batch_inputs["error on %s" % pars[index]].append(item)
-                
-               
+                        if pars[index] in temp_model.getParamList():
+                            temp_model.setParam(pars[index], res.pvec[index])
+                        
                 self.page_finder[pid].set_batch_result(batch_inputs=batch_inputs,
                                                  batch_outputs=batch_outputs)   
                 cpage = self.fit_panel.get_page_by_id(pid)
                 cpage._on_fit_complete()
-                model, data = res.inputs[0]
                 self.page_finder[pid][data.id].set_result(res)
                 fitproblem = self.page_finder[pid][data.id]
-                smearer = fitproblem.get_smearer()
+                
+               
+                from sans.models.qsmearing import smear_selection
+                #smearer = fitproblem.get_smearer()
+                smearer = smear_selection(data, temp_model)
                 qmin, qmax = fitproblem.get_range()
                 weight = fitproblem.get_weight()
                 flag = issubclass(data.__class__, Data2D)
-                self.draw_model(model=model,
+                self.draw_model(model=temp_model,
                                   page_id=pid, 
                                   data=data, 
@@ -1131,5 +1141,4 @@
         theory_data.name = data.name + "[%s]" % str(model.__class__.__name__)
         cell.object = [data, theory_data]
-        
         batch_outputs["Data"].append(cell)
         for key, value in data.meta_data.iteritems():
@@ -1449,8 +1458,11 @@
             current_pg = self.fit_panel.get_page_by_id(page_id)
             title = new_plot.title
-            wx.PostEvent(self.parent, NewPlotEvent(plot=new_plot,
+            batch_on = self.fit_panel.get_page_by_id(page_id).batch_on
+            if not batch_on:
+                wx.PostEvent(self.parent, NewPlotEvent(plot=new_plot,
                                             title=str(title)))
             caption = current_pg.window_caption
             self.page_finder[page_id].set_fit_tab_caption(caption=caption)
+            
             self.page_finder[page_id].set_theory_data(data=new_plot, 
                                                       fid=data.id)
@@ -1680,4 +1692,5 @@
                 dy[dy==0] = 1
             fn = data_copy.y[index] 
+            
             theory_data = self.page_finder[page_id].get_theory_data(fid=data_copy.id)
             if theory_data== None:
@@ -1691,4 +1704,5 @@
         # get chisqr only w/finite
         chisqr = numpy.average(residuals * residuals)
+        
         self._plot_residuals(page_id=page_id, data=data_copy, 
                              fid=fid,
@@ -1809,4 +1823,5 @@
         event = BatchDrawEvent(page_id=page_id , 
                            batch_on=batch_on,
+                           fid=fid,
                            batch_outputs=batch_outputs,
                            batch_inputs=batch_inputs,
@@ -1820,4 +1835,5 @@
         deplay batch result
         """
+        fid = event.fid
         page_id = event.page_id
         batch_on = event.batch_on
@@ -1825,5 +1841,5 @@
         batch_outputs = event.batch_outputs
         batch_inputs = event.batch_inputs
-        if flag and batch_on:
+        if flag and batch_on and fid is not None:
             self.parent.on_set_batch_result(data_outputs=batch_outputs, 
                                             data_inputs=batch_inputs,
