Index: src/sas/sascalc/fit/BumpsFitting.py
===================================================================
--- src/sas/sascalc/fit/BumpsFitting.py	(revision b699768550de9d4b35b087234ec1d2a461922bab)
+++ src/sas/sascalc/fit/BumpsFitting.py	(revision 1a5d5f2d6cd4b4999b40c7fbc72a7a295fa78d9d)
@@ -4,4 +4,5 @@
 import os
 from datetime import timedelta, datetime
+import traceback
 
 import numpy
@@ -293,6 +294,9 @@
             R.success = result['success']
             if R.success:
-                R.stderr = numpy.hstack((result['stderr'][fitted_index],
-                                         numpy.NaN*numpy.ones(len(fitness.computed_pars))))
+                if result['stderr'] is None:
+                    R.stderr = numpy.NaN*numpy.ones(len(param_list))
+                else:
+                    R.stderr = numpy.hstack((result['stderr'][fitted_index],
+                                             numpy.NaN*numpy.ones(len(fitness.computed_pars))))
                 R.pvec = numpy.hstack((result['value'][fitted_index],
                                       [p.value for p in fitness.computed_pars]))
@@ -306,4 +310,5 @@
                 R.uncertainty_state = result['uncertainty']
             all_results.append(R)
+        all_results[0].mesg = result['errors']
 
         if q is not None:
@@ -344,7 +349,8 @@
     try:
         best, fbest = fitdriver.fit()
-    except:
-        import traceback; traceback.print_exc()
-        raise
+        errors = []
+    except Exception as exc:
+        best, fbest = None, numpy.NaN
+        errors = [str(exc), traceback.traceback.format_exc()]
     finally:
         mapper.stop_mapper(fitdriver.mapper)
@@ -356,10 +362,17 @@
 
     success = best is not None
+    try:
+        stderr = fitdriver.stderr() if success else None
+    except Exception as exc:
+        errors.append(str(exc))
+        errors.append(traceback.format_exc())
+        stderr = None
     return {
         'value': best if success else None,
-        'stderr': fitdriver.stderr() if success else None,
+        'stderr': stderr,
         'success': success,
         'convergence': convergence,
         'uncertainty': getattr(fitdriver.fitter, 'state', None),
+        'errors': '\n'.join(errors),
         }
 
Index: src/sas/sasgui/perspectives/fitting/fitting.py
===================================================================
--- src/sas/sasgui/perspectives/fitting/fitting.py	(revision ec72ceb76f0f8f97a43694dd5647f5a51b5c8b26)
+++ src/sas/sasgui/perspectives/fitting/fitting.py	(revision 1a5d5f2d6cd4b4999b40c7fbc72a7a295fa78d9d)
@@ -1521,11 +1521,10 @@
             for uid in page_id:
                 res = result[index]
+                fit_msg = res.mesg
                 if res.fitness is None or \
                     not numpy.isfinite(res.fitness) or \
                     numpy.any(res.pvec == None) or \
                     not numpy.all(numpy.isfinite(res.pvec)):
-                    msg = "Fitting did not converge!!!"
-                    evt = StatusEvent(status=msg, info="warning", type="stop")
-                    wx.PostEvent(self.parent, evt)
+                    fit_msg += "\nFitting did not converge!!!"
                     wx.CallAfter(self._update_fit_button, page_id)
                 else:
@@ -1550,11 +1549,10 @@
                         wx.CallAfter(cpage._on_fit_complete)
                     except KeyboardInterrupt:
-                        msg = "Singular point: Fitting Stoped."
-                        evt = StatusEvent(status=msg, info="info", type="stop")
-                        wx.PostEvent(self.parent, evt)
+                        fit_msg += "\nSingular point: Fitting stopped."
                     except:
-                        msg = "Singular point: Fitting Error occurred."
-                        evt = StatusEvent(status=msg, info="error", type="stop")
-                        wx.PostEvent(self.parent, evt)
+                        fit_msg += "\nSingular point: Fitting error occurred."
+                if fit_msg:
+                   evt = StatusEvent(status=fit_msg, info="warning", type="stop")
+                   wx.PostEvent(self.parent, evt)
 
         except:
