Index: park_integration/src/sans/fit/AbstractFitEngine.py
===================================================================
--- park_integration/src/sans/fit/AbstractFitEngine.py	(revision e8f7c478fdfcdf8da5bc887ca6e6fc06d01c5106)
+++ park_integration/src/sans/fit/AbstractFitEngine.py	(revision ba7dceb97b67e13fc6acebcc55febefce4957b28)
@@ -416,5 +416,5 @@
     """
     def __init__(self, paramlist, model=None , data=None, fitresult=None,
-                 handler=None, curr_thread=None):
+                 handler=None, curr_thread=None, msg_q=None):
         """
         :param Model: the model wrapper fro sans -model
@@ -425,4 +425,5 @@
         self.data  = data
         self.paramlist = paramlist
+        self.msg_q = msg_q
         self.curr_thread = curr_thread
         self.handler = handler
@@ -467,14 +468,20 @@
             return self.res
         self.res = self.true_res       
-        if self.fitresult is not None and  self.handler is not None:
+        
+        if self.fitresult is not None:
             self.fitresult.set_model(model=self.model)
             self.fitresult.residuals = self.true_res
             self.fitresult.theory = theory
+           
             #fitness = self.chisq(params=params)
             fitness = self.chisq()
             self.fitresult.pvec = params
             self.fitresult.set_fitness(fitness=fitness)
-            self.handler.set_result(result=self.fitresult)
-            self.handler.update_fit()
+            if self.msg_q is not None:
+                self.msg_q.put(self.fitresult)
+                
+            if self.handler is not None:
+                self.handler.set_result(result=self.fitresult)
+                self.handler.update_fit()
 
             if self.curr_thread != None :
Index: park_integration/src/sans/fit/Fitting.py
===================================================================
--- park_integration/src/sans/fit/Fitting.py	(revision 7db52f1912cba2e4449a15df666a973a73b05588)
+++ park_integration/src/sans/fit/Fitting.py	(revision ba7dceb97b67e13fc6acebcc55febefce4957b28)
@@ -50,10 +50,11 @@
             raise ValueError, "enter the keyword scipy or park"
 
-    def fit(self, q=None, handler=None, 
+    def fit(self, msg_q=None, q=None, handler=None, 
                         curr_thread=None, 
                         ftol=1.49012e-8,
                         reset_flag=False):
         """Perform the fit """
-        return self._engine.fit(q, handler, curr_thread=curr_thread,
+        return self._engine.fit(msg_q=msg_q, 
+                                q=q, handler=handler, curr_thread=curr_thread,
                                 ftol=ftol, reset_flag=reset_flag)
      
Index: park_integration/src/sans/fit/ParkFitting.py
===================================================================
--- park_integration/src/sans/fit/ParkFitting.py	(revision 53fc5ad97901592fd719d9a64c95e59c70e28b1b)
+++ park_integration/src/sans/fit/ParkFitting.py	(revision ba7dceb97b67e13fc6acebcc55febefce4957b28)
@@ -382,5 +382,6 @@
         
   
-    def fit(self, q=None, handler=None, curr_thread=None, 
+    def fit(self, msg_q=None, 
+            q=None, handler=None, curr_thread=None, 
                                         ftol=1.49012e-8, reset_flag=False):
         """
Index: park_integration/src/sans/fit/ScipyFitting.py
===================================================================
--- park_integration/src/sans/fit/ScipyFitting.py	(revision 7db52f1912cba2e4449a15df666a973a73b05588)
+++ park_integration/src/sans/fit/ScipyFitting.py	(revision ba7dceb97b67e13fc6acebcc55febefce4957b28)
@@ -56,5 +56,6 @@
     #    return profile(self._fit, *args, **kw)
 
-    def fit(self, q=None, handler=None, curr_thread=None, 
+    def fit(self, msg_q=None,
+            q=None, handler=None, curr_thread=None, 
             ftol=1.49012e-8, reset_flag=False):
         """
@@ -96,6 +97,11 @@
             from scipy import optimize
             
-            functor = SansAssembly(self.param_list, model, data, handler=handler,\
-                         fitresult=result, curr_thread= curr_thread)
+            functor = SansAssembly(paramlist=self.param_list, 
+                                   model=model, 
+                                   data=data,
+                                    handler=handler,
+                                    fitresult=result,
+                                     curr_thread=curr_thread,
+                                     msg_q=msg_q)
             out, cov_x, _, mesg, success = optimize.leastsq(functor,
                                             model.get_params(self.param_list),
