Index: sansview/perspectives/fitting/fit_thread.py
===================================================================
--- sansview/perspectives/fitting/fit_thread.py	(revision 785c823324aaba8461c3abed70e8f3dfe58f0d5b)
+++ sansview/perspectives/fitting/fit_thread.py	(revision 662da312e8482d743654f628b2f483bb37ba6d7c)
@@ -155,6 +155,6 @@
         except :
             #Stop on exception during fitting. Todo: need to put some mssg and reset progress bar.
-            msg= " Fit Error occurred... %s"%sys.exc_value
-            wx.PostEvent(self.parent, StatusEvent(status= msg,type="stop"))
-            #raise
+            #msg= " Fit Error occurred... %s"%sys.exc_value
+            #wx.PostEvent(self.parent, StatusEvent(status= msg,type="stop"))
+            raise
     
Index: sansview/perspectives/fitting/fitting.py
===================================================================
--- sansview/perspectives/fitting/fitting.py	(revision 2db1d665f3e97e01fd0cb33181bd40a393015981)
+++ sansview/perspectives/fitting/fitting.py	(revision 662da312e8482d743654f628b2f483bb37ba6d7c)
@@ -453,14 +453,14 @@
                     self.current_pg= page
             except:
-                msg= "%s error: %s" % (engineType,sys.exc_value)
-                wx.PostEvent(self.parent, StatusEvent(status= msg ))
-                return 
+                raise
+                #msg= "%s error: %s" % (engineType,sys.exc_value)
+                #wx.PostEvent(self.parent, StatusEvent(status= msg ))
+                #return 
             
         #Do the simultaneous fit
         try:
             ## If a thread is already started, stop it
-            if self.calc_fit!= None and self.calc_fit.isrunning():
-                return
-                self.calc_fit.stop()
+            #if self.calc_fit!= None and self.calc_fit.isrunning():
+            #    self.calc_fit.stop()
             
             wx.PostEvent(self.parent, StatusEvent(status="Start the computation",
@@ -471,7 +471,8 @@
             time.sleep(0.5)
             ## perform single fit
-            if self._fit_engine=="scipy":
+            if fitproblem_count == 1:
                 #qmin, qmax= self.current_pg.get_range()
-                self.calc_fit=FitThread(parent =self.parent,
+                print "went here fitproblem_count == 1",fitproblem_count == 1
+                calc_fit=FitThread(parent =self.parent,
                                         fn= self.fitter,
                                        cpage=self.current_pg,
@@ -479,28 +480,30 @@
                                        completefn= self._single_fit_completed,
                                        updatefn=self._updateFit)
+                
                       
             else:
                 ## Perform more than 1 fit at the time
-                self.calc_fit=FitThread(parent =self.parent,
+                calc_fit=FitThread(parent =self.parent,
                                         fn= self.fitter,
                                        completefn= self._simul_fit_completed,
                                        updatefn=self._updateFit)
             
-            self.calc_fit.queue()
-            self.ready_fit()
+            calc_fit.queue()
+            self.ready_fit(calc_fit=calc_fit)
             
         except FitAbort:
             print "in pluging"
         except:
-            msg= "%s error: %s" % (engineType,sys.exc_value)
-            wx.PostEvent(self.parent, StatusEvent(status= msg ,type="stop"))
-            return 
-        
-    def ready_fit(self):
+            raise
+        #    msg= "%s error: %s" % (engineType,sys.exc_value)
+        #    wx.PostEvent(self.parent, StatusEvent(status= msg ,type="stop"))
+        #    return 
+        
+    def ready_fit(self, calc_fit):
         """
         Ready for another fit
         """
         if self.fitproblem_count != None and self.fitproblem_count > 1:
-            self.calc_fit.ready(2.5)
+            calc_fit.ready(2.5)
             
         else:
@@ -626,12 +629,13 @@
             self.fitter.set_data(data=metadata,Uid=self.fit_id,
                                  smearer=smearer,qmin= qmin,qmax=qmax )
-           
+            print "self.fitter.set_data"
             self.fitter.select_problem_for_fit(Uid= self.fit_id,
                                                value= value.get_scheduled())
             value.clear_model_param()
         except:
-            msg= title +" error: %s" % sys.exc_value
-            wx.PostEvent(self.parent, StatusEvent(status= msg, type="stop"))
-            return
+            raise
+            #msg= title +" error: %s" % sys.exc_value
+            #wx.PostEvent(self.parent, StatusEvent(status= msg, type="stop"))
+            #return
        
     def _onSelect(self,event):
@@ -775,7 +779,8 @@
             """
         except:
-            msg= "Single Fit completed but Following error occurred:%s"% sys.exc_value
-            wx.PostEvent(self.parent, StatusEvent(status=msg,type="stop"))
-            return
+            raise
+            #msg= "Single Fit completed but Following error occurred:%s"% sys.exc_value
+            #wx.PostEvent(self.parent, StatusEvent(status=msg,type="stop"))
+            #return
        
        
@@ -827,8 +832,9 @@
                     page.onsetValues(result.fitness, small_param_name,small_out,small_cov)
         except:
-             msg= "Simultaneous Fit completed"
-             msg +=" but Following error occurred:%s"%sys.exc_value
-             wx.PostEvent(self.parent, StatusEvent(status=msg,type="stop"))
-             return 
+            raise
+             #msg= "Simultaneous Fit completed"
+             #msg +=" but Following error occurred:%s"%sys.exc_value
+             #wx.PostEvent(self.parent, StatusEvent(status=msg,type="stop"))
+             #return 
              
                            
