Index: sansview/perspectives/fitting/basepage.py
===================================================================
--- sansview/perspectives/fitting/basepage.py	(revision 8b6f489cf0df515f7d01f394aaa33d2bac1b753d)
+++ sansview/perspectives/fitting/basepage.py	(revision fa65e996639027bc7b223b1a2ac9fabee2c194ea)
@@ -1646,5 +1646,5 @@
                 if not self.disable_smearer.GetValue():
                     temp_smear= self.current_smearer
-            print "_draw_model", self.enable2D
+            toggle_mode_on = self.model_view.IsEnabled()
             self._manager.draw_model(self.model, 
                                     data=self.data,
@@ -1654,4 +1654,5 @@
                                     qstep= float(self.npts_x),
                                     id=self.id,
+                                    toggle_mode_on=toggle_mode_on, 
                                     state = self.state,
                                     enable2D=self.enable2D)
Index: sansview/perspectives/fitting/fitpage.py
===================================================================
--- sansview/perspectives/fitting/fitpage.py	(revision e2f0554c6b9383b5f07fd949be51f6140d808911)
+++ sansview/perspectives/fitting/fitpage.py	(revision fa65e996639027bc7b223b1a2ac9fabee2c194ea)
@@ -1524,4 +1524,5 @@
                 self.enable2D = False
                 self.model_view.SetLabel("1D Mode")
+                
             self.model_view.Disable()
             self._draw_model()
Index: sansview/perspectives/fitting/fitting.py
===================================================================
--- sansview/perspectives/fitting/fitting.py	(revision 8b6f489cf0df515f7d01f394aaa33d2bac1b753d)
+++ sansview/perspectives/fitting/fitting.py	(revision fa65e996639027bc7b223b1a2ac9fabee2c194ea)
@@ -455,4 +455,5 @@
                    enable1D=True, enable2D=False,
                    state=None,
+                   toggle_mode_on=False,
                    qmin=DEFAULT_QMIN, qmax=DEFAULT_QMAX, qstep=DEFAULT_NPTS):
         """
@@ -480,4 +481,5 @@
                                qmin=qmin,
                                qmax=qmax, 
+                               toggle_mode_on=toggle_mode_on,
                                state=state,
                                qstep=qstep)
@@ -492,4 +494,5 @@
                                 qmax=qmax,
                                 state=state,
+                                toggle_mode_on=toggle_mode_on,
                                 qstep=qstep)
             
@@ -1088,5 +1091,6 @@
   
                 
-    def _complete1D(self, x,y, id, elapsed,index,model,state=None, data=None):
+    def _complete1D(self, x,y, id, elapsed,index,model,
+                    toggle_mode_on=False,state=None, data=None):
         """
         Complete plotting 1D data
@@ -1122,4 +1126,5 @@
                 new_plot.is_data = False 
             new_plot.id =  str(id) + " Model1D"  
+            print "new_plot.id", new_plot.id
             #find if this theory was already plotted and replace that plot given
             #the same id
@@ -1128,5 +1133,8 @@
                 if theory_data is not None:
                     temp_id = theory_data.id
+                    print "theory_data id", temp_id
                     new_plot.id = temp_id
+            if toggle_mode_on:
+                new_plot.id =  str(id) + " Model"  
             new_plot.name = model.name + " ["+ str(model.__class__.__name__)+ "]"
             new_plot.xaxis(_xaxis, _xunit)
@@ -1141,4 +1149,5 @@
             self.parent.append_theory(data_id=data_id, 
                                           theory=new_plot, state=state)
+            
             wx.PostEvent(self.parent, NewPlotEvent(plot=new_plot,
                                             title= str(new_plot.title)))
@@ -1166,5 +1175,5 @@
     
     def _complete2D(self, image, data, model, id,  elapsed, index, qmin,
-                     qmax, state=None,qstep=DEFAULT_NPTS):
+                     qmax, toggle_mode_on=False,state=None,qstep=DEFAULT_NPTS):
         """
         Complete get the result of modelthread and create model 2D
@@ -1173,9 +1182,9 @@
         err_image = numpy.zeros(numpy.shape(image))
        
-        theory= Data2D(image=image, err_image=err_image)
-        theory.name = model.name
+        new_plot= Data2D(image=image, err_image=err_image)
+        new_plot.name = model.name
         
         if data is None:
-            self._fill_default_model2D(theory=theory, 
+            self._fill_default_model2D(theory=new_plot, 
                                        qmax=qmax, 
                                        id=id,
@@ -1184,26 +1193,26 @@
            
         else:
-            theory.id = str(id) + "Model2D"
-            theory.group_id = str(id) + "Model2D"
+            new_plot.id = str(id) + " Model2D"
+            new_plot.group_id = str(id) + " Model2D"
          
-            theory.x_bins = data.x_bins
-            theory.y_bins = data.y_bins
-            theory.detector = data.detector
-            theory.source = data.source
-            theory.is_data = False 
-            theory.qx_data = data.qx_data
-            theory.qy_data = data.qy_data
-            theory.q_data = data.q_data
+            new_plot.x_bins = data.x_bins
+            new_plot.y_bins = data.y_bins
+            new_plot.detector = data.detector
+            new_plot.source = data.source
+            new_plot.is_data = False 
+            new_plot.qx_data = data.qx_data
+            new_plot.qy_data = data.qy_data
+            new_plot.q_data = data.q_data
             #numpy.zeros(len(data.err_data))#data.err_data
-            theory.err_data = err_image
-            theory.mask = data.mask
+            new_plot.err_data = err_image
+            new_plot.mask = data.mask
             ## plot boundaries
-            theory.ymin = data.ymin
-            theory.ymax = data.ymax
-            theory.xmin = data.xmin
-            theory.xmax = data.xmax
-        theory.name = model.name + " ["+ str(model.__class__.__name__)+ "]"
-        theory.title = "Analytical model 2D "
-        theory_data = deepcopy(theory)
+            new_plot.ymin = data.ymin
+            new_plot.ymax = data.ymax
+            new_plot.xmin = data.xmin
+            new_plot.xmax = data.xmax
+        new_plot.name = model.name + " ["+ str(model.__class__.__name__)+ "]"
+        new_plot.title = "Analytical model 2D "
+        theory_data = deepcopy(new_plot)
         theory_data.name = "Unknown"
         self.page_finder[id].set_theory_data(theory_data)
@@ -1216,9 +1225,10 @@
             data_id = data.id
         self.parent.append_theory(data_id=data_id, 
-                                          theory=theory, state=state)
-            
+                                          theory=new_plot, state=state)
+        if toggle_mode_on:
+            new_plot.id = str(id) + " Model"      
         ## plot
-        wx.PostEvent(self.parent, NewPlotEvent(plot=theory,
-                         title=theory.title))
+        wx.PostEvent(self.parent, NewPlotEvent(plot=new_plot,
+                         title=new_plot.title))
         # Chisqr in fitpage
         current_pg = self.fit_panel.get_page_by_id(id)
@@ -1231,4 +1241,5 @@
                       description=None, enable2D=False,
                       state=None,
+                      toggle_mode_on=False,
                       qmin=DEFAULT_QMIN, qmax=DEFAULT_QMAX,
                        qstep=DEFAULT_NPTS):
@@ -1280,4 +1291,5 @@
                                     qmax=qmax,
                                     qstep=qstep,
+                                    toggle_mode_on=toggle_mode_on,
                                     state=state,
                                     completefn=self._complete2D,
@@ -1294,4 +1306,5 @@
                 qmin=DEFAULT_QMIN, qmax=DEFAULT_QMAX, 
                 state=None,
+                toggle_mode_on=False,
                 qstep=DEFAULT_NPTS, enable1D=True):
         """
@@ -1331,4 +1344,5 @@
                                   smearer=smearer,
                                   state=state,
+                                  toggle_mode_on=toggle_mode_on,
                                   completefn=self._complete1D,
                                   updatefn=self._update1D)
Index: sansview/perspectives/fitting/model_thread.py
===================================================================
--- sansview/perspectives/fitting/model_thread.py	(revision 5ef55d27cd7fa4428d6e625095e517c463fc814a)
+++ sansview/perspectives/fitting/model_thread.py	(revision fa65e996639027bc7b223b1a2ac9fabee2c194ea)
@@ -17,4 +17,5 @@
                  id ,
                  state=None,
+                 toggle_mode_on=False,
                  completefn = None,
                  updatefn   = None,
@@ -29,5 +30,5 @@
         self.qmax= qmax
         self.qstep= qstep
-
+        self.toggle_mode_on = toggle_mode_on
         self.x = x
         self.y = y
@@ -124,4 +125,5 @@
                        model=self.model,
                        state=self.state,
+                       toggle_mode_on=self.toggle_mode_on,
                        elapsed=elapsed,
                        index=index_model,
@@ -141,4 +143,5 @@
                  qmax=None,
                  smearer=None,
+                 toggle_mode_on=False,
                  state=None,
                  completefn = None,
@@ -154,11 +157,12 @@
                  worktime)
         self.x = numpy.array(x)
-        self.data= data
-        self.qmin= qmin
-        self.qmax= qmax
+        self.data = data
+        self.qmin = qmin
+        self.qmax = qmax
         self.model = model
+        self.toggle_mode_on = toggle_mode_on
         self.state = state
         self.page_id = id
-        self.smearer= smearer
+        self.smearer = smearer
         self.starttime = 0
         
@@ -184,4 +188,5 @@
                       id=self.page_id,
                       state=self.state,
+                      toggle_mode_on=self.toggle_mode_on,
                       elapsed=elapsed,index=index, model=self.model,
                                         data=self.data)
