Index: sansview/perspectives/fitting/basepage.py
===================================================================
--- sansview/perspectives/fitting/basepage.py	(revision 00c3aac2ed8b11897250eb4613d6853592049f62)
+++ sansview/perspectives/fitting/basepage.py	(revision 9853ad069a86f1e21bce16d80f5733f56cfedd79)
@@ -653,7 +653,9 @@
             self._populate_box( self.formfactorbox,
                                 self.model_list_box["Added models"])
-            
-            
-        if self.multip_cb.GetValue():
+        if not self.multip_cb.GetValue(): 
+            model = self.formfactorbox.GetClientData(0)
+            self.model = model()
+            
+        else:
             ## multplication not available for structure factor
             if self.struct_rbutton.GetValue():
@@ -664,13 +666,16 @@
             self.structurebox.Show(True)
             self.text2.Show(True)
-            ## draw empty model
-            from sans.models.NullModel import NullModel
-            self.model = NullModel()
-            self.model.name = "Select P(Q) and S(Q)"
-            self.set_model_param_sizer(self.model)
-            self.sizer4_4.Clear()
-            self.sizer4.Layout()
-            self._draw_model()
-            
+            ## draw multplication  model
+            form_factor = self.formfactorbox.GetClientData(0)
+            struct_factor = self.structurebox.GetClientData(0)
+            
+            from sans.models.MultiplicationModel import MultiplicationModel
+            self.model= MultiplicationModel(form_factor(),struct_factor())
+
+        self.set_model_param_sizer(self.model)
+        self.sizer4_4.Clear()
+        self.sizer4.Layout()
+            
+        self._draw_model()
         self.set_scroll()
         
@@ -691,5 +696,8 @@
                     name = model.name
                 combobox.Append(name,models)
-            
+        try:
+            combobox.SetSelection(0)
+        except:
+            pass
         wx.EVT_COMBOBOX(combobox,-1, self._on_select_model) 
         return 0
@@ -706,16 +714,9 @@
        
         if self.multip_cb.GetValue():
-            if struct_factor != None and form_factor != None:
-                from sans.models.MultiplicationModel import MultiplicationModel
-                self.model= MultiplicationModel(form_factor(),struct_factor())
-            else:
-                from sans.models.NullModel import NullModel
-                self.model = NullModel()
-                self.model.name = "Select P(Q) and S(Q)"
-                msg= "select one P(Q) and one S(Q) to plot"
-                wx.PostEvent(self.parent.parent, StatusEvent(status= msg))
+            from sans.models.MultiplicationModel import MultiplicationModel
+            self.model= MultiplicationModel(form_factor(),struct_factor())
+            
         else:
-            if form_factor != None:
-                self.model= form_factor()
+            self.model= form_factor()
        
         
@@ -753,7 +754,8 @@
                     is_modified = True    
             except:
-                msg= "Model Drawing  Error:wrong value entered : %s"% sys.exc_value
-                wx.PostEvent(self.parent.parent, StatusEvent(status = msg ))
-                return 
+                raise
+                #msg= "Model Drawing  Error:wrong value entered : %s"% sys.exc_value
+                #wx.PostEvent(self.parent.parent, StatusEvent(status = msg ))
+                #return 
         
         return is_modified 
Index: sansview/perspectives/fitting/fitpanel.py
===================================================================
--- sansview/perspectives/fitting/fitpanel.py	(revision c9a43773a6a8aabe5aaa2b81bcfbbf72236bf041)
+++ sansview/perspectives/fitting/fitpanel.py	(revision 9853ad069a86f1e21bce16d80f5733f56cfedd79)
@@ -61,18 +61,18 @@
              close page and remove all references to the closed page
         """
-        page_info=self.get_current_page().page_info.clone()
-        page_info.page_name= self.get_current_page().page_info.page_name
-       
-        self.manager._add_page_onmenu(page_info.page_name, page_info)
+        page_info = self.get_current_page().page_info.clone()
+        page_info.page_name = self.get_current_page().page_info.page_name
+        page_finder = self.manager.get_page_finder() 
+        fitproblem = None
+        
+        if self.get_current_page() in page_finder:
+            fitproblem= page_finder[self.get_current_page()]
+            
+        self.manager._add_page_onmenu(page_info.page_name, page_info, fitproblem)
         
         selected_page = self.GetPage(self.GetSelection())
         page_number = self.GetSelection()
+        
         if self.sim_page != selected_page and selected_page!=self.about_page:
-            #remove that page from page_finder of fitting module
-            page_finder=self.manager.get_page_finder() 
-            for page, value in page_finder.iteritems():
-                if page==selected_page:
-                    del page_finder[page]
-                    break
             # remove the check box link to the model name of this page (selected_page)
             if self.sim_page !=None :
@@ -86,4 +86,5 @@
                 self.draw_model_name=None
                 self.model_page=None
+                
             if  page_number == 1:
                 self.model_page=None
@@ -170,12 +171,44 @@
             return None 
         
-    def _help_add_model_page(self,model,page_title, qmin=0, qmax=0.1, npts=50):
-        """
-            #TODO: fill in description
-            
+   
+    def add_model_page(self,model,page_title, qmin=0, qmax=0.1, npts=50, topmenu=False):
+        """
+            Add a model page only one  to display any model selected from the menu or the page combo box.
+            when this page is closed than the user will be able to open a new one
+            
+            @param model: the model for which paramters will be changed
+            @param page_title: the name of the page
+            @param page_title: [Coder: fill your description!]
             @param qmin: mimimum Q
             @param qmax: maximum Q
             @param npts: number of Q points
         """
+        if topmenu==True:
+            if  self.draw_model_name ==None:
+                self._help_add_model_page(model,page_title, qmin=qmin, qmax=qmax, npts=npts)
+            else:
+                self.model_page.select_model(model, page_title)
+        else:
+            self._create_model_page(model,page_title, qmin=qmin, qmax=qmax, npts=npts)
+          
+    def _help_add_model_page(self,model,page_title, qmin=0, qmax=0.1, npts=50):
+        """
+            #TODO: fill in description
+            
+            @param qmin: mimimum Q
+            @param qmax: maximum Q
+            @param npts: number of Q points
+        """
+        self._create_model_page(model,page_title,qmin=qmin, qmax=qmax, npts=npts)
+        # We just created a model page, we are ready to plot the model
+        #self.manager.draw_model(model, model.name)
+        #FOR PLUGIN  for some reason model.name is = BASEcomponent
+        self.manager.draw_model(model)
+    
+    def _create_model_page(self,model,page_title, qmin, qmax, npts):
+        """
+        adding model page occurs here
+        """
+       
         ## storing page info
         from pageInfo import  PageInfo
@@ -201,30 +234,5 @@
         self.model_page.set_range(qmin, qmax, npts)
         
-        # We just created a model page, we are ready to plot the model
-        #self.manager.draw_model(model, model.name)
-        #FOR PLUGIN  for some reason model.name is = BASEcomponent
-        self.manager.draw_model(model)
-        
-     
-        
-    def add_model_page(self,model,page_title, qmin=0, qmax=0.1, npts=50, topmenu=False):
-        """
-            Add a model page only one  to display any model selected from the menu or the page combo box.
-            when this page is closed than the user will be able to open a new one
-            
-            @param model: the model for which paramters will be changed
-            @param page_title: the name of the page
-            @param page_title: [Coder: fill your description!]
-            @param qmin: mimimum Q
-            @param qmax: maximum Q
-            @param npts: number of Q points
-        """
-        if topmenu==True:
-            if  self.draw_model_name ==None:
-                self._help_add_model_page(model,page_title, qmin=qmin, qmax=qmax, npts=npts)
-            else:
-                self.model_page.select_model(model, page_title)
-          
-   
+        
   
    
Index: sansview/perspectives/fitting/fitproblem.py
===================================================================
--- sansview/perspectives/fitting/fitproblem.py	(revision 2140e68d04b8406b34c5c4a54bdf7cc8706f5f70)
+++ sansview/perspectives/fitting/fitproblem.py	(revision 9853ad069a86f1e21bce16d80f5733f56cfedd79)
@@ -29,4 +29,21 @@
         self.qmin = None
         self.qmax = None
+        
+    def clone(self):
+        """
+            copy fitproblem
+        """
+        import copy 
+        obj          = FitProblem( self.parent,model= model )
+        obj.fit_data = copy.deepcopy(self.fit_data)
+        obj.model = copy.deepcopy(self.model)
+        obj.schedule = copy.deepcopy(self.schedule)
+        obj.list_param = copy.deepcopy(self.list_param)
+        obj.smearer = copy.deepcopy(self.smearer)
+        obj.plotted_data = copy.deepcopy(self.plotted_data)
+        obj.qmin = copy.deepcopy(self.qmin)
+        obj.qmax = copy.deepcopy(self.qmax)
+        
+        return obj
         
         
Index: sansview/perspectives/fitting/fitting.py
===================================================================
--- sansview/perspectives/fitting/fitting.py	(revision c9a43773a6a8aabe5aaa2b81bcfbbf72236bf041)
+++ sansview/perspectives/fitting/fitting.py	(revision 9853ad069a86f1e21bce16d80f5733f56cfedd79)
@@ -446,5 +446,5 @@
               
               
-    def _add_page_onmenu(self, name, page_info):
+    def _add_page_onmenu(self, name, page_info,fitproblem=None):
         """
             Add name of a closed page of fitpanel in a menu 
@@ -454,5 +454,5 @@
         self.menu1.Append(event_id, name, 
              "Show %s fit panel" % name)
-        self.closed_page_dict[event_id ]= page_info
+        self.closed_page_dict[event_id ]= [page_info, fitproblem]
         wx.EVT_MENU(self.parent,event_id,  self._open_closed_page)
         
@@ -463,10 +463,12 @@
         """
         if event.GetId() in self.closed_page_dict.keys():
-            page_info= self.closed_page_dict[ event.GetId() ]
+            page_info,fitproblem = self.closed_page_dict[ event.GetId() ]
             if page_info.page_name !="Model Page":
                 page = self.fit_panel.add_fit_page(page_info.data)
+                if fitproblem != None:
+                    self.page_finder[page]=fitproblem
             else:
                 model= page_info.model
-                self.fit_panel.add_model_page(model,model.name,topmenu=True)
+                self.fit_panel.add_model_page(model,model.name,topmenu=False)
         
     def _reset_schedule_problem(self, value=0):
