Index: sansview/perspectives/fitting/fitpanel.py
===================================================================
--- sansview/perspectives/fitting/fitpanel.py	(revision 2140e68d04b8406b34c5c4a54bdf7cc8706f5f70)
+++ sansview/perspectives/fitting/fitpanel.py	(revision b28717bfe0c1bdc53f2a5cbdda3203ee46e8525b)
@@ -125,5 +125,7 @@
         """
         from simfitpage import SimultaneousFitPage
-        self.sim_page = SimultaneousFitPage(self, id=-1)
+        page_finder= self.manager.get_page_finder()
+        self.sim_page = SimultaneousFitPage(self,page_finder=page_finder, id=-1)
+        
         self.AddPage(self.sim_page,caption="Simultaneous Fit",select=True)
         self.sim_page.set_manager(self.manager)
Index: sansview/perspectives/fitting/fitting.py
===================================================================
--- sansview/perspectives/fitting/fitting.py	(revision 2140e68d04b8406b34c5c4a54bdf7cc8706f5f70)
+++ sansview/perspectives/fitting/fitting.py	(revision b28717bfe0c1bdc53f2a5cbdda3203ee46e8525b)
@@ -126,5 +126,5 @@
         
         self.sim_page= self.fit_panel.add_sim_page()
-        self.sim_page.draw_page(self.page_finder)
+        
         
         
@@ -787,5 +787,5 @@
             
             if self.sim_page!=None:
-                self.sim_page.draw_page(self.page_finder)
+                self.sim_page.draw_page()
         
         
Index: sansview/perspectives/fitting/simfitpage.py
===================================================================
--- sansview/perspectives/fitting/simfitpage.py	(revision 2549c1b91c1a53f071a480bfc8c02a647098b5c9)
+++ sansview/perspectives/fitting/simfitpage.py	(revision b28717bfe0c1bdc53f2a5cbdda3203ee46e8525b)
@@ -48,5 +48,5 @@
         self.parent = parent
         ## store page_finder
-        self.page_finder=page_finder
+        self.page_finder = page_finder
         ## list contaning info to set constraint 
         ## look like self.constraint_dict[page]=FitConstraint(model, page)
@@ -58,8 +58,9 @@
         ## selected mdoel to fit
         self.model_toFit=[]
-        ## draw
+        ## number of constraint
+        self.nb_constraint= 0
+        ## draw page
         self.define_page_structure()
-        self.draw_page(self.page_finder)
-        
+        self.draw_page()
         self.set_layout()
         
@@ -117,6 +118,5 @@
         """
         self.manager = manager
-        self.draw_page( self.manager.page_finder)
-        
+       
         
     def check_all_model_name(self,event):
@@ -135,5 +135,4 @@
             ## display constraint fields
             if self.show_constraint.GetValue():
-                self._hide_constraint()
                 self._show_constraint()
                 return
@@ -162,40 +161,28 @@
                     self.model_toFit.remove(item)
                     self.cb1.SetValue(False)
+        
         ## display constraint fields
-        if len(self.model_toFit)>=2 and len(self.model_list)==len(self.model_toFit):
+        if len(self.model_toFit)==2:
             self._store_model()
-            if self.show_constraint.GetValue():
-                self._hide_constraint()
+            if self.show_constraint.GetValue() and len(self.constraints_list)==0:
                 self._show_constraint()
-                          
+        elif len(self.model_toFit)< 2:
+            ##constraint info
+            self._hide_constraint()              
        
         ## set the value of the main check button          
         if len(self.model_list)==len(self.model_toFit):
             self.cb1.SetValue(True)
-            ## constraint info
-            self._store_model()
-            ## display constraint fields
-            if self.show_constraint.GetValue():
-                self._hide_constraint()
-                self._show_constraint()
-                return
+            return
         else:
             self.cb1.SetValue(False)
-            if len(self.model_toFit)>=2:
-                self._store_model()
-                if self.show_constraint.GetValue():
-                    self._show_constraint()
-                    return
-            ##constraint info
-            self._hide_constraint()
+           
         
   
-    def draw_page(self, page_finder={}):      
+    def draw_page(self):      
         """
             Draw a sizer containing couples of data and model 
-        """   
-        ## receive a new page_finder  
-        self.page_finder = page_finder  
-       
+        """ 
+      
         self.model_list=[]
         self.model_toFit=[]
@@ -266,5 +253,4 @@
             return
         if self.show_constraint.GetValue():
-            self._hide_constraint()
             self._show_constraint()
             return
@@ -287,5 +273,5 @@
                 msg += "Parameters name reached %s"%str(nb_fit_param)
                 wx.PostEvent(self.parent.Parent, StatusEvent(status= msg ))
-                self.sizer_couples.Layout()
+                self.sizer_constraints.Layout()
                 self.sizer2.Layout()
                 self.SetScrollbars(20,20,200,100)
@@ -295,5 +281,5 @@
             msg= "Select at least 2 model to add constraint "
             wx.PostEvent(self.parent.Parent, StatusEvent(status= msg ))
-            self.sizer_couples.Layout()
+            self.sizer_constraints.Layout()
             self.sizer2.Layout()
             self.SetScrollbars(20,20,200,100)
@@ -306,4 +292,5 @@
 
         param_cbox = wx.ComboBox(self, -1)
+        param_cbox.Hide()
         wx.EVT_COMBOBOX(param_cbox,-1, self._on_select_param)
         
@@ -325,15 +312,15 @@
         self.constraints_list.append([model_cbox, param_cbox, egal_txt, ctl2])
         
-        sizer_constraint.Add(model_cbox)
-        sizer_constraint.Add((10,10))
-        sizer_constraint.Add(param_cbox)
-        sizer_constraint.Add(egal_txt)
-        sizer_constraint.Add(ctl2)
-        sizer_constraint.Add((10,10))
-        
-        
-        self.sizer_couples.Add(sizer_constraint)
-        self.sizer_couples.Add((10,10))
-        self.sizer_couples.Layout()
+        sizer_constraint.Add(model_cbox, flag= wx.RIGHT|wx.EXPAND,border=10)
+        sizer_constraint.Add(param_cbox, flag= wx.RIGHT|wx.EXPAND,border=5)
+        sizer_constraint.Add(egal_txt, flag= wx.RIGHT|wx.EXPAND,border=5)
+        sizer_constraint.Add(ctl2, flag= wx.RIGHT|wx.EXPAND,border=10)
+      
+        self.sizer_constraints.Insert(before=self.nb_constraint,
+                                      item=sizer_constraint, flag= wx.TOP|wx.BOTTOM|wx.EXPAND,
+                                   border=5, userData=0)
+       
+        self.nb_constraint += 1
+        self.sizer_constraints.Layout()
         self.sizer2.Layout()
         self.SetScrollbars(20,20,200,100)
@@ -345,15 +332,16 @@
         if len(self.constraint_dict)>0:
             for item in self.constraints_list:
-                model = item[0].GetClientData(0)
+                model = item[0].GetClientData(item[0].GetCurrentSelection())
                 if model  in self.constraint_dict.keys():
                     page = self.constraint_dict[model].page
                     self.page_finder[page].clear_model_param()
-                    
+               
+        self.nb_constraint =0     
         self.constraint_dict={}
         self._store_model()
-        self.btAdd.Hide()
+      
         self.constraints_list=[]         
-        self.sizer_couples.Clear(True) 
-        self.sizer_couples.Layout()    
+        self.sizer_constraints.Clear(True) 
+        self.sizer_constraints.Layout()    
         self.sizer2.Layout()
         self.SetScrollbars(20,20,200,100)
@@ -401,5 +389,5 @@
         ctl2.Show(True)
         
-        self.btAdd.Show(True)
+        
         self.sizer2.Layout()
         self.SetScrollbars(20,20,200,100)
@@ -428,8 +416,8 @@
             ctl2 = item[3]
             if ctl2.GetValue().lstrip().rstrip()=="":
-                 msg= " Enter a constraint for %s.%s! "%(param_cbox.GetClientData(0).name,
-                                              param_cbox.GetString(0))           
-                 wx.PostEvent(self.parent.Parent, StatusEvent(status= msg ))
-                 return 
+                model= param_cbox.GetClientData(param_cbox.GetCurrentSelection())
+                msg= " Enter a constraint for %s.%s! "%(model.name,param_cbox.GetString(0))           
+                wx.PostEvent(self.parent.Parent, StatusEvent(status= msg ))
+                return 
        
         ## some model or parameters can be constrained
@@ -452,5 +440,5 @@
         boxsizer1 = wx.StaticBoxSizer(box_description, wx.VERTICAL)
         sizer_title = wx.BoxSizer(wx.HORIZONTAL)
-        self.sizer_couples = wx.BoxSizer(wx.VERTICAL)
+        self.sizer_constraints = wx.BoxSizer(wx.VERTICAL)
         sizer_button = wx.BoxSizer(wx.HORIZONTAL)
         
@@ -477,5 +465,5 @@
         self.btAdd.Bind(wx.EVT_BUTTON, self._onAdd_constraint,id= self.btAdd.GetId())
         self.btAdd.SetToolTipString("Add another constraint?")
-        self.btAdd.Hide()
+       
         
         self.btFit = wx.Button(self,wx.NewId(),'Fit')
@@ -490,5 +478,5 @@
         boxsizer1.Add(sizer_title)
         boxsizer1.Add((10,10))
-        boxsizer1.Add(self.sizer_couples)
+        boxsizer1.Add(self.sizer_constraints)
         boxsizer1.Add((10,10))
         boxsizer1.Add(sizer_button)
