Index: src/sas/sasgui/perspectives/fitting/basepage.py
===================================================================
--- src/sas/sasgui/perspectives/fitting/basepage.py	(revision 345e7e4a8c6f5977c8c07032553b5ab00bdf837d)
+++ src/sas/sasgui/perspectives/fitting/basepage.py	(revision 345e7e4a8c6f5977c8c07032553b5ab00bdf837d)
@@ -52,5 +52,4 @@
     FONT_VARIANT = 1
     ON_MAC = True
-
 
 class BasicPage(ScrolledPanel, PanelBase):
@@ -1458,4 +1457,17 @@
                 self.state_change = True
                 self._draw_model()
+                # Time delay has been introduced to prevent _handle error
+                # on Windows
+                # This part of code is executed when model is selected and
+                # it's parameters are changed (with respect to previously
+                # selected model). There are two Iq evaluations occuring one
+                # after another and therefore there may be compilation error
+                # if model is calculated for the first time.
+                # This seems to be Windows only issue - haven't tested on Linux
+                # though.The proper solution (other than time delay) requires
+                # more fundemental code refatoring
+                # Wojtek P. Nov 7, 2016
+                if not ON_MAC:
+                    time.sleep(0.1)
                 self.Refresh()
 
@@ -2396,5 +2408,6 @@
 
         # Redraw the model
-        self._draw_model()
+        #  Wojtek P. Nov 7, 2016: Redrawing seems to be unnecessary here
+        # self._draw_model()
         # self._undo.Enable(True)
         event = PageInfoEvent(page=self)
Index: src/sas/sasgui/perspectives/fitting/fitpage.py
===================================================================
--- src/sas/sasgui/perspectives/fitting/fitpage.py	(revision 345e7e4a8c6f5977c8c07032553b5ab00bdf837d)
+++ src/sas/sasgui/perspectives/fitting/fitpage.py	(revision 345e7e4a8c6f5977c8c07032553b5ab00bdf837d)
@@ -81,8 +81,8 @@
         flag = check_data_validity(self.data) & (self.model is not None)
         self.btFit.Enable(flag)
-        
+
     def on_set_focus(self, event):
         """
-        Override the basepage focus method to ensure the save flag is set 
+        Override the basepage focus method to ensure the save flag is set
         properly when focusing on the fit page.
         """
@@ -238,5 +238,5 @@
 
         weighting_set_box = wx.StaticBox(self, wx.ID_ANY,
-                                'Set Weighting by Selecting dI Source')
+                                         'Set Weighting by Selecting dI Source')
         weighting_box = wx.StaticBoxSizer(weighting_set_box, wx.HORIZONTAL)
         sizer_weighting = wx.BoxSizer(wx.HORIZONTAL)
@@ -1164,7 +1164,7 @@
         if event is not None:
             if (event.GetEventObject() == self.formfactorbox
-                        and self.structurebox.GetLabel() != 'None')\
-                        or event.GetEventObject() == self.structurebox\
-                        or event.GetEventObject() == self.multifactorbox:
+                    and self.structurebox.GetLabel() != 'None')\
+                    or event.GetEventObject() == self.structurebox\
+                    or event.GetEventObject() == self.multifactorbox:
                 copy_flag = self.get_copy_params()
                 is_poly_enabled = self.enable_disp.GetValue()
@@ -1205,5 +1205,6 @@
                     self._keep.Enable(not self.batch_on)
                     self._set_save_flag(True)
-                    self._set_smear(self.data)
+            #Setting smearing for cases with and without data.
+            self._set_smear(self.data)
 
             # more disables for 2D
@@ -1212,5 +1213,7 @@
             try:
                 # update smearer sizer
-                self.onSmear(None)
+                #This call for smearing set up caused double evaluation of
+                #I(q) and double compilation as results
+                #self.onSmear(None)
                 temp_smear = None
                 if not self.disable_smearer.GetValue():
@@ -1226,10 +1229,10 @@
             # set smearing value whether or not data contain the smearing info
             evt = ModelEventbox(model=self.model,
-                            smearer=temp_smear,
-                            enable_smearer=not self.disable_smearer.GetValue(),
-                            qmin=float(self.qmin_x),
-                            uid=self.uid,
-                            caption=self.window_caption,
-                            qmax=float(self.qmax_x))
+                                smearer=temp_smear,
+                                enable_smearer=not self.disable_smearer.GetValue(),
+                                qmin=float(self.qmin_x),
+                                uid=self.uid,
+                                caption=self.window_caption,
+                                qmax=float(self.qmax_x))
 
             self._manager._on_model_panel(evt=evt)
Index: src/sas/sasgui/perspectives/fitting/fitting.py
===================================================================
--- src/sas/sasgui/perspectives/fitting/fitting.py	(revision 1a5d5f2d6cd4b4999b40c7fbc72a7a295fa78d9d)
+++ src/sas/sasgui/perspectives/fitting/fitting.py	(revision 1a5d5f2d6cd4b4999b40c7fbc72a7a295fa78d9d)
@@ -864,5 +864,4 @@
                 enable1D=enable1D, enable2D=enable2D,
                 qmin=qmin, qmax=qmax, weight=weight)
-            self._mac_sleep(0.2)
 
     def _mac_sleep(self, sec=0.2):
@@ -1964,5 +1963,5 @@
                 ## May need rethinking  
                 ##
-                ##    -PDB August 12, 2014                  
+                ##    -PDB August 12, 2014
                 while self.calc_1D.isrunning():
                     time.sleep(0.1)
