Index: sansview/perspectives/fitting/basepage.py
===================================================================
--- sansview/perspectives/fitting/basepage.py	(revision 06b59fe2ebcf24dd03d55d6eb67813234a84e1bb)
+++ sansview/perspectives/fitting/basepage.py	(revision 997131a77b184b826e78088a435366bc2778bd3e)
@@ -43,4 +43,6 @@
         ## selected parameters to apply dispersion
         self.disp_cb_dict ={}
+        ## smearer object
+        self.smearer = None
         ##list of model parameters. each item must have same length
         ## each item related to a given parameters
@@ -224,11 +226,13 @@
         sizer_select_dispers.Add((10,10)) 
         sizer_select_dispers.Add(self.model_disp) 
-        sizer_select_dispers.Add(self.disp_box) 
-        sizer_select_dispers.Add((10,10)) 
+        sizer_select_dispers.Add(self.disp_box,0,
+                wx.TOP|wx.BOTTOM|wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE,border=5)
+        #sizer_select_dispers.Add((10,10)) 
         self.model_disp.Hide()
         self.disp_box.Hide()
         
-        boxsizer1.Add( sizer_dispersion )
-        boxsizer1.Add( (10,10) )
+        boxsizer1.Add( sizer_dispersion,0,
+                wx.TOP|wx.BOTTOM|wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE,border=5)
+        #boxsizer1.Add( (10,10) )
         boxsizer1.Add( sizer_select_dispers )
         self.sizer4_4 = wx.GridBagSizer(5,5)
Index: sansview/perspectives/fitting/fitpage.py
===================================================================
--- sansview/perspectives/fitting/fitpage.py	(revision d1e04737f5484e5576c030020a1a5851d1235dba)
+++ sansview/perspectives/fitting/fitpage.py	(revision 997131a77b184b826e78088a435366bc2778bd3e)
@@ -22,5 +22,5 @@
 from basepage import BasicPage
 from basepage import PageInfoEvent
-
+from DataLoader.qsmearing import smear_selection
 
 class FitPage(BasicPage):
@@ -48,5 +48,7 @@
         self._fill_range_sizer() 
         self._on_select_model(event=None)
-    
+        if self.data !=None:
+            self.smearer = smear_selection( self.data )
+            
         ## to update the panel according to the fit engine type selected
         self.Bind(EVT_FITTER_TYPE,self._on_engine_change)
@@ -452,5 +454,8 @@
         self.set_model_param_sizer(self.model)
         try:
-            self.compute_chisqr()
+            temp_smear= None
+            if self.enable_smearer.GetValue():
+                temp_smear= self.smearer
+            self.compute_chisqr(temp_smear)
         except:
             ## error occured on chisqr computation
@@ -603,14 +608,13 @@
             are compute when fitting
         """
-        smear =None
-        msg=""
+        
         if self.enable_smearer.GetValue():
-            from DataLoader.qsmearing import smear_selection
-            smear = smear_selection( self.data )
+            msg=""
+            temp_smearer= self.smearer
             if hasattr(self.data,"dxl"):
                 msg= ": Resolution smearing parameters"
             if hasattr(self.data,"dxw"):
                 msg= ": Slit smearing parameters"
-            if smear ==None:
+            if self.smearer ==None:
                 wx.PostEvent(self.manager.parent, StatusEvent(status=\
                             "Data contains no smearing information"))
@@ -618,9 +622,11 @@
                 wx.PostEvent(self.manager.parent, StatusEvent(status=\
                             "Data contains smearing information %s"%msg))
+        else:
+            temp_smearer = None
         ## set smearing value whether or not the data contain the smearing info
-        self.manager.set_smearer(smear, qmin= float(self.qmin_x),
+        self.manager.set_smearer(temp_smearer, qmin= float(self.qmin_x),
                                       qmax= float(self.qmax_x)) 
         ##Calculate chi2
-        self.compute_chisqr()  
+        self.compute_chisqr(smearer= temp_smearer)  
         ## save the state enable smearing
         self.save_current_state()
@@ -668,5 +674,5 @@
     
         
-    def compute_chisqr(self):
+    def compute_chisqr(self , smearer=None):
         """ 
             compute chi square given a model and data 1D and set the value
@@ -692,6 +698,9 @@
                         dy= numpy.asarray(self.data.dy)
                     dy[dy==0]=1
+                    
                     if self.qmin_x==None and self.qmax_x==None: 
                         fx =numpy.asarray([self.model.run(v) for v in x])
+                        if smearer!=None:
+                            fx= smearer(fx)
                         temp=(y - fx)/dy
                         res= temp*temp
@@ -699,4 +708,6 @@
                         idx = (x>= self.qmin_x) & (x <=self.qmax_x)
                         fx = numpy.asarray([self.model.run(item)for item in x[idx ]])
+                        if smearer!=None:
+                            fx= smearer(fx)
                         temp=(y[idx] - fx)/dy[idx]
                         res= temp*temp
@@ -708,7 +719,8 @@
                     self.tcChi.SetLabel(format_number(math.fabs(sum/ len(res))))
             except:
-                wx.PostEvent(self.parent.GrandParent, StatusEvent(status=\
-                            "Chisqr cannot be compute: %s"% sys.exc_value))
-                return 
+                raise
+                #wx.PostEvent(self.parent.GrandParent, StatusEvent(status=\
+                #            "Chisqr cannot be compute: %s"% sys.exc_value))
+                #return 
             
     
Index: sansview/perspectives/fitting/fitting.py
===================================================================
--- sansview/perspectives/fitting/fitting.py	(revision d7e391ea54145d497ffe81317b673ac62e832bcc)
+++ sansview/perspectives/fitting/fitting.py	(revision 997131a77b184b826e78088a435366bc2778bd3e)
@@ -796,7 +796,8 @@
             qmin, qmax= current_pg.get_range()
             self.page_finder[current_pg].set_range(qmin=qmin, qmax=qmax)
-           
+            smearer=  self.page_finder[current_pg].get_smearer()
             # save model name
-            self.draw_model( model=model, data= metadata, qmin=qmin, qmax=qmax)
+            self.draw_model( model=model,smearer=smearer, 
+                             data= metadata, qmin=qmin, qmax=qmax)
             
             if self.sim_page!=None:
