Index: sansview/perspectives/fitting/basepage.py
===================================================================
--- sansview/perspectives/fitting/basepage.py	(revision 4fbc93e4841711bf826beba2d47b6e28c5bb83b8)
+++ sansview/perspectives/fitting/basepage.py	(revision 4470b10c1507400a7ebecf18e3923db56ac26a21)
@@ -554,4 +554,6 @@
         """
         if self.model==None:
+            msg="Can not bookmark; Please select Data and Model first..."
+            wx.MessageBox(msg, 'Info')
             return 
         if hasattr(self,"enable_disp"):
@@ -802,6 +804,8 @@
         """ 
         flag = False
-        if self.data is None and self.model is None:
-            msg = "Please load a Data to start"
+        if self.data is None:
+            self.disable_smearer.SetValue(True)
+            self.disable_disp.SetValue(True)
+            msg = "Please load Data and select Model to start..."
             wx.MessageBox(msg, 'Info')
             return  True
@@ -1128,5 +1132,5 @@
         
         self.save_current_state()
-            
+   
         return flag                           
                
@@ -1455,4 +1459,5 @@
         """
         if self.check_invalid_panel():
+            self.shape_rbutton.SetValue(True)
             return
 
@@ -1813,4 +1818,13 @@
         if self.check_invalid_panel():
             return 
+        ## On selction if no model exists.
+        if self.model ==None:
+            self.disable_disp.SetValue(True)
+            msg="Please select a Model first..."
+            wx.MessageBox(msg, 'Info')
+            wx.PostEvent(self.manager.parent, StatusEvent(status=\
+                            "Polydispersion: %s"%msg))
+            return
+
         self._reset_dispersity()
     
Index: sansview/perspectives/fitting/fitpage.py
===================================================================
--- sansview/perspectives/fitting/fitpage.py	(revision fd50e2f1b7da67bf4cd9a79ebdf572e6a21620ea)
+++ sansview/perspectives/fitting/fitpage.py	(revision 4470b10c1507400a7ebecf18e3923db56ac26a21)
@@ -777,4 +777,11 @@
         if self.check_invalid_panel():
             return
+        if self.model ==None:
+            msg="Please select a Model first..."
+            wx.MessageBox(msg, 'Info')
+            wx.PostEvent(self.manager.parent, StatusEvent(status=\
+                            "Fit: %s"%msg))
+            return
+
         flag = self._update_paramv_on_fit() 
                 
@@ -851,4 +858,5 @@
             try:
                 temp_smear= None
+                self.disable_smearer.SetValue(True)
                 if self.enable_smearer.GetValue():
                     temp_smear= self.smearer
@@ -878,4 +886,11 @@
             when enter value on panel redraw model according to changed
         """
+        if self.model ==None:
+            msg="Please select a Model first..."
+            wx.MessageBox(msg, 'Info')
+            #wx.PostEvent(self.manager.parent, StatusEvent(status=\
+            #                "Parameters: %s"%msg))
+            return
+
         #default flag
         flag = False
@@ -1217,5 +1232,5 @@
         
         # Check if the accuracy is same as before
-        # Mac does not get the GetEventObject; use the line below
+        
         #self.smear2d_accuracy = event.GetEventObject().GetValue()
         self.smear2d_accuracy = self.smear_accuracy.GetValue()
@@ -1539,9 +1554,11 @@
             return
         if self.model ==None:
-            msg="Need model and data to smear plot"
+            self.disable_smearer.SetValue(True)
+            msg="Please select a Model first..."
+            wx.MessageBox(msg, 'Info')
             wx.PostEvent(self.manager.parent, StatusEvent(status=\
                             "Smear: %s"%msg))
             return
-        
+
         # Need update param values
         self._update_paramv_on_fit()     
@@ -1701,13 +1718,17 @@
             are compute when fitting
         """
-
-               
+ 
         if self.check_invalid_panel():
             return
+
         if self.model ==None:
-            msg="Need model and data to smear plot"
+            self.disable_smearer.SetValue(True)
+            
+            msg="Please select a Model first..."
+            wx.MessageBox(msg, 'Info')
             wx.PostEvent(self.manager.parent, StatusEvent(status=\
                             "Smear: %s"%msg))
             return
+
         # Need update param values
         self._update_paramv_on_fit()
@@ -1727,8 +1748,9 @@
         else:
             is_new_slit = True 
-                
+        
         # if any value is changed
         if is_new_slit:
             msg = self._set_slit_smear()
+            
         # hide all silt sizer
         self._hide_all_smear_info()        
@@ -1739,5 +1761,5 @@
         self.sizer_set_smearer.Layout()
         self.Layout()
-        
+
         if event != None:
             event.Skip()     
@@ -1749,5 +1771,5 @@
             wx.PostEvent(self.manager.parent, StatusEvent(status = msg))
 
-            
+
     def _is_changed_slit(self):  
         """
@@ -1755,4 +1777,5 @@
             return: True or False
         """
+        
         # get the values
         width = self.smear_slit_width.GetValue()
@@ -1787,4 +1810,5 @@
         if self.dxl != dxl:
             return True
+
         return False
     
@@ -1825,5 +1849,5 @@
             else:
                 self.smear_slit_width.SetBackgroundColour(wx.WHITE)
-                
+              
         self.current_smearer = smear_selection(data)
         #temp_smearer = self.current_smearer
@@ -1864,5 +1888,7 @@
             return
         if self.model ==None:
-            msg="Need model and data to smear plot"
+            self.disable_smearer.SetValue(True)
+            msg="Please select a Model first..."
+            wx.MessageBox(msg, 'Info')
             wx.PostEvent(self.manager.parent, StatusEvent(status=\
                             "Smear: %s"%msg))
