Index: fittingview/src/sans/perspectives/fitting/fitproblem.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/fitproblem.py	(revision f64a4b748c9e918384f698fff478f9a69e67d520)
+++ fittingview/src/sans/perspectives/fitting/fitproblem.py	(revision 41661a0e6555997634d428aedc26a69d76f07d43)
@@ -135,4 +135,13 @@
         Get graph_id
         """  
+    def set_result(self, result):
+        """
+        """
+
+    def get_result(self):
+        """
+        get result 
+        """   
+
    
 class FitProblemDictionary(FitProblemComponent, dict):
@@ -419,5 +428,11 @@
         return self.itervalues()
     
-    def set_result(self, batch_inputs, batch_outputs):
+    def  set_result(self, result, fid):
+        """
+        """
+        if fid in self.iterkeys():
+            self[fid].set_result(result)
+            
+    def set_batch_result(self, batch_inputs, batch_outputs):
         """
         set a list of result
@@ -425,6 +440,13 @@
         self.batch_inputs = batch_inputs
         self.batch_outputs = batch_outputs
-                
-    def get_result(self):
+             
+    def get_result(self, fid):
+        """
+        get result 
+        """   
+        if fid in self.iterkeys():
+            return self[fid].get_result()
+            
+    def get_batch_result(self):
         """
         get result 
@@ -689,3 +711,13 @@
         """  
         return self.graph_id
-   
+    
+    def set_result(self, result):
+        """
+        """
+        self.result = result
+        
+    def get_result(self):
+        """
+        get result 
+        """   
+        return self.result
Index: fittingview/src/sans/perspectives/fitting/fitting.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/fitting.py	(revision 31469d508d1dc79736a84c9f649e1ab29bb7e9ff)
+++ fittingview/src/sans/perspectives/fitting/fitting.py	(revision 41661a0e6555997634d428aedc26a69d76f07d43)
@@ -761,5 +761,4 @@
                         pars.append(name)
                     fitproblem_list = value.values()
-                    fitproblem_list.sort()
                     for fitproblem in  fitproblem_list:
                         if sim_fitter is None:
@@ -999,5 +998,6 @@
                     listOfConstraint.append((item[0],item[1]))
         new_model = model#deepcopy(model)
-        fitter.set_model(new_model, fit_id, pars, constraints=listOfConstraint)
+        fitter.set_model(new_model, fit_id, pars, data=data,
+                         constraints=listOfConstraint)
         fitter.set_data(data=data, id=fit_id, smearer=smearer, qmin=qmin, 
                         qmax=qmax)
@@ -1035,4 +1035,6 @@
         print "update_fit result", result
         
+   
+        
     def _batch_single_fit_complete_helper(self, result, pars, page_id, 
                             batch_outputs, batch_inputs, elapsed=None):
@@ -1048,4 +1050,5 @@
         wx.PostEvent(self.parent, StatusEvent(status=msg, info="info",
                                                       type="stop"))
+        pid = page_id[0]
         if batch_outputs is None:
             batch_outputs = {}
@@ -1079,36 +1082,30 @@
                         item = res.stderr[index]
                         batch_inputs["error on %s" % pars[index]].append(item)
-            pid = page_id[0]
-            self.page_finder[pid].set_result(batch_inputs=batch_inputs,
-                                             batch_outputs=batch_outputs)   
-            count = len(self.page_finder[pid].keys())
-            for pid in page_id:
+                
+               
+                self.page_finder[pid].set_batch_result(batch_inputs=batch_inputs,
+                                                 batch_outputs=batch_outputs)   
                 cpage = self.fit_panel.get_page_by_id(pid)
                 cpage._on_fit_complete()
-                fitproblem_list = self.page_finder[pid].values()
-                fitproblem_list.sort()
-                for fitproblem in fitproblem_list:
-                    data = fitproblem.get_fit_data()
-                    model = fitproblem.get_model()
-                    smearer = fitproblem.get_smearer()
-                    qmin, qmax = fitproblem.get_range()
-                    weight = fitproblem.get_weight()
-                    flag = issubclass(data.__class__, Data2D)
-                    self.draw_model(model=model,
-                                      page_id=pid, 
-                                      data=data, 
-                                      smearer=smearer,
-                                      enable1D=not flag, 
-                                      enable2D=flag,
-                                      state=None,
-                                      toggle_mode_on=False,
-                                      fid=data.id,
-                                      qmin=qmin, qmax=qmax, 
-                                      update_chisqr=False, 
-                                      weight=weight)
-           
-    
-        
-                    
+                model, data = res.inputs[0]
+                self.page_finder[pid][data.id].set_result(res)
+                fitproblem = self.page_finder[pid][data.id]
+                smearer = fitproblem.get_smearer()
+                qmin, qmax = fitproblem.get_range()
+                weight = fitproblem.get_weight()
+                flag = issubclass(data.__class__, Data2D)
+                self.draw_model(model=model,
+                                  page_id=pid, 
+                                  data=data, 
+                                  smearer=smearer,
+                                  enable1D=not flag, 
+                                  enable2D=flag,
+                                  state=None,
+                                  toggle_mode_on=False,
+                                  fid=data.id,
+                                  qmin=qmin, qmax=qmax, 
+                                  update_chisqr=False, 
+                                  weight=weight)
+       
     def on_set_batch_result(self, page_id, fid, batch_outputs, batch_inputs):
         """
@@ -1262,4 +1259,5 @@
                     #Separate result in to data corresponding to each page
                     for p in result.parameters:
+                        #print "simul ----", p , p.__class__, p.model.name, p.data.name
                         model_name, param_name = self.split_string(p.name)  
                         if model.name == model_name:
@@ -1793,5 +1791,5 @@
         m = self.page_finder[page_id].nbr_residuals_computed
         flag = False
-        batch_inputs, batch_outputs = self.page_finder[page_id].get_result()
+        batch_inputs, batch_outputs = self.page_finder[page_id].get_batch_result()
          
         if self.page_finder[page_id].nbr_residuals_computed == -1:
