Index: src/sans/fit/BumpsFitting.py
===================================================================
--- src/sans/fit/BumpsFitting.py	(revision 4a0dc4276c1a1488e2553a91d40254594d20758e)
+++ src/sans/fit/BumpsFitting.py	(revision eff93b8d577de85b34ffd99e484da07484c35580)
@@ -196,5 +196,5 @@
             handler.update_fit(last=True)
 
-        # TODO: shouldn't reference internal parameters
+        # TODO: shouldn't reference internal parameters of fit problem
         varying = problem._parameters
         # collect the results
@@ -208,4 +208,5 @@
             R.residuals = fitness.residuals()
             R.fitter_id = self.fitter_id
+            # TODO: should scale stderr by sqrt(chisq/DOF) if dy is unknown
             R.stderr = result['stderr'][fitted_index]
             R.pvec = result['value'][fitted_index]
Index: src/sans/perspectives/fitting/fitpanel.py
===================================================================
--- src/sans/perspectives/fitting/fitpanel.py	(revision b6a181b3c69394fc4ac616d07590369465589b85)
+++ src/sans/perspectives/fitting/fitpanel.py	(revision eff93b8d577de85b34ffd99e484da07484c35580)
@@ -64,5 +64,5 @@
         self.sim_page = None
         self.batch_page = None
-        self.fit_engine_type = "scipy"
+        self.fit_engine_type = "bumps"
         ## get the state of a page
         self.Bind(basepage.EVT_PAGE_INFO, self._onGetstate)
Index: src/sans/perspectives/fitting/fitting.py
===================================================================
--- src/sans/perspectives/fitting/fitting.py	(revision 4e9f22702695459c7a6c8721061aab9d9e4ef437)
+++ src/sans/perspectives/fitting/fitting.py	(revision eff93b8d577de85b34ffd99e484da07484c35580)
@@ -45,4 +45,9 @@
 from sans.guiframe.gui_manager import MDIFrame
 
+# TODO: remove globals from interface to bumps options!
+# Default bumps to use the levenberg-marquardt optimizer
+import bumps.fitters
+bumps.fitters.FIT_DEFAULT = 'lm'
+
 MAX_NBR_DATA = 4
 SANS_F_TOL = 5e-05
@@ -80,6 +85,4 @@
         # Start with a good default
         self.elapsed = 0.022
-        # the type of optimizer selected, park or scipy
-        self.fitter = None
         self.fit_panel = None
         #let fit ready
@@ -90,5 +93,5 @@
         self.closed_page_dict = {}
         ## Fit engine
-        self._fit_engine = 'scipy'
+        self._fit_engine = 'bumps'
         self._gui_engine = None
         ## Relative error desired in the sum of squares (float); scipy only
@@ -206,7 +209,7 @@
         wx.EVT_MENU(owner, self.bumps_id, self._onset_engine_bumps)
         
-        self.menu1.FindItemById(self.scipy_id).Check(True)
-        self.menu1.FindItemById(self.park_id).Check(False)
-        self.menu1.FindItemById(self.bumps_id).Check(False)
+        self.menu1.FindItemById(self.scipy_id).Check(self._fit_engine=="scipy")
+        self.menu1.FindItemById(self.park_id).Check(self._fit_engine=="park")
+        self.menu1.FindItemById(self.bumps_id).Check(self._fit_engine=="bumps")
         self.menu1.AppendSeparator()
         self.id_tol = wx.NewId()
@@ -986,5 +989,8 @@
             if value.get_scheduled() == 1:
                 fitproblem_count += 1
-        self._gui_engine = self._return_engine_type()
+        # Remember the user selected fit engine before the fit.  Simultaneous
+        # fitting may change the selected engine, so it needs to be restored
+        # when the fit is complete.
+        self._gui_engine = self._fit_engine
         self.fitproblem_count = fitproblem_count
         if self._fit_engine in ("park","bumps"):
@@ -1751,10 +1757,4 @@
                 break
     
-    def _return_engine_type(self):
-        """
-        return the current type of engine
-        """
-        return self._fit_engine
-     
     def _on_change_engine(self, engine='park'):
         """
Index: test/park_integration/test/utest_fit_cylinder.py
===================================================================
--- test/park_integration/test/utest_fit_cylinder.py	(revision 4e9f22702695459c7a6c8721061aab9d9e4ef437)
+++ test/park_integration/test/utest_fit_cylinder.py	(revision eff93b8d577de85b34ffd99e484da07484c35580)
@@ -126,5 +126,5 @@
 
         fitter.set_data(self.data2,2)
-        fitter.set_model(self.model2, 2, ['radius','scale'],
+        fitter.set_model(self.model2, 2, ['length','radius','scale'],
                          constraints=[("length","C1.length")])
         fitter.select_problem_for_fit(id=1,value=1)
