Index: fittingview/src/sans/perspectives/fitting/fitting.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/fitting.py	(revision ed8fa6a3d826d430f1d3968e9cd739c02b2f4627)
+++ fittingview/src/sans/perspectives/fitting/fitting.py	(revision 98fdccdc928f739647fe860088440575c240730d)
@@ -1380,7 +1380,7 @@
                     if key not in param_list and key not in ["Chi2", "Data"]:
                         batch_outputs[key].append(EMPTY)
-                for key in batch_inputs.keys():
-                    if key not in param_list and key not in ["Chi2", "Data"]:
-                        batch_inputs[key].append(EMPTY)
+                #for key in batch_inputs.keys():
+                    #if key not in param_list and key not in ["Chi2", "Data"]:
+                        #batch_inputs[key].append(EMPTY)
                                 
                 self.page_finder[pid].set_batch_result(batch_inputs=batch_inputs,
@@ -1470,6 +1470,6 @@
             if key not in batch_inputs.keys():
                 batch_inputs[key] = []
-            if key.lower().strip() != "loader":
-                batch_inputs[key].append(value)
+            #if key.lower().strip() != "loader":
+            batch_inputs[key].append(value)
         param = "temperature"
         if hasattr(data.sample, param):
Index: sansguiframe/src/sans/guiframe/data_panel.py
===================================================================
--- sansguiframe/src/sans/guiframe/data_panel.py	(revision c668b1b20c90ae42b920e0b0ae2c97aa29cc11b8)
+++ sansguiframe/src/sans/guiframe/data_panel.py	(revision 98fdccdc928f739647fe860088440575c240730d)
@@ -582,5 +582,5 @@
                             i_t_c = self.tree_ctrl.AppendItem(d_p_c,
                                                               process.__str__())
-                self.append_theory(state_id, theory_list)
+                wx.CallAfter(self.append_theory, state_id, theory_list)
         self.enable_remove()
         self.enable_import()
Index: sansguiframe/src/sans/guiframe/data_processor.py
===================================================================
--- sansguiframe/src/sans/guiframe/data_processor.py	(revision 5531a46c2b576b5bf8c3788c8fe223036fb6554d)
+++ sansguiframe/src/sans/guiframe/data_processor.py	(revision 98fdccdc928f739647fe860088440575c240730d)
@@ -644,11 +644,11 @@
         if data_outputs is None or data_outputs == {}:
             return
-        
+        inputs, outputs = self.get_odered_results(data_inputs, data_outputs)
         for pos in range(self.GetPageCount()):
             grid = self.GetPage(pos)
             if grid.data is None:
                 #Found empty page
-                grid.set_data(data_inputs=data_inputs, 
-                              data_outputs=data_outputs,
+                grid.set_data(data_inputs=inputs, 
+                              data_outputs=outputs,
                               details=details,
                               file_name=file_name) 
@@ -657,8 +657,32 @@
                 
         grid, pos = self.add_empty_page()
-        grid.set_data(data_inputs=data_inputs, 
-                      data_outputs=data_outputs,
+        grid.set_data(data_inputs=inputs, 
+                      data_outputs=outputs,
                       file_name=file_name,
                       details=details)
+        
+    def get_odered_results(self, inputs, outputs=None):
+        """
+        Get ordered the results
+        """
+        # Let's re-order the data from the keys in 'Data' name.
+        if outputs == None:
+            return
+        to_be_sort = [str(item.label) for item in outputs['Data']]
+        inds = numpy.lexsort((to_be_sort, to_be_sort))
+        for key in outputs.keys():
+            key_list = outputs[key]
+            temp_key = [item for item in key_list]
+            for ind in inds:
+                temp_key[ind] = key_list[inds[ind]]
+            outputs[key] = temp_key
+        for key in inputs.keys():
+            key_list = inputs[key]
+            if len(key_list) > 0:
+                temp_key = [item for item in key_list]
+                for ind in inds:
+                    temp_key[ind] = key_list[inds[ind]]
+                inputs[key] = temp_key
+        return inputs, outputs
     
     def add_column(self):
@@ -670,8 +694,4 @@
         grid.AppendCols(1, True)
         
-   
-
-
-
 class GridPanel(SPanel):
     def __init__(self, parent, data_inputs=None,
@@ -706,5 +726,5 @@
         self.layout_plotting_area()
         self.SetSizer(self.vbox)
-  
+
     def set_xaxis(self, label="", x=None):
         """
@@ -1088,5 +1108,4 @@
         menubar.Append(self.edit, "&Edit")
         self.Bind(wx.EVT_CLOSE, self.on_close)
-        
     def GetLabelText(self, id):
         """
