diff --git a/src/nmreval/fit/minimizer.py b/src/nmreval/fit/minimizer.py
index 0c1fa93..27e7492 100644
--- a/src/nmreval/fit/minimizer.py
+++ b/src/nmreval/fit/minimizer.py
@@ -237,29 +237,34 @@ class FitRoutine(object):
                 if p0_k is None:
                     self.make_results(data, data.para_keys, var_pars_k, data.para_keys, (len(data.para_keys), len(data.para_keys)),
                                       err=None, corr=None, partial_corr=None)
-                    return self.result
+                else:
+                    if mode == 'lsq':
+                        self._least_squares_single(data, p0_k, lb_k, ub_k, var_pars_k)
 
-                if mode == 'lsq':
-                    self._least_squares_single(data, p0_k, lb_k, ub_k, var_pars_k)
+                    elif mode == 'nm':
+                        self._nm_single(data, p0_k, lb_k, ub_k, var_pars_k)
 
-                elif mode == 'nm':
-                    self._nm_single(data, p0_k, lb_k, ub_k, var_pars_k)
-
-                elif mode == 'odr':
-                    # ODR takes no bounds
-                    self._odr_single(data, p0_k, var_pars_k)
+                    elif mode == 'odr':
+                        # ODR takes no bounds
+                        self._odr_single(data, p0_k, var_pars_k)
 
             else:
                 data_pars, p0, lb, ub, var_pars = self._prep_global(data_groups, linked_parameter)
 
-                if mode == 'lsq':
-                    self._least_squares_global(data_groups, p0, lb, ub, var_pars, data_pars)
+                if not p0:
+                    for data_k, p_k in zip(data_groups, data_pars):
+                        self.make_results(data_k, p_k, [], p_k, (len(p_k), len(p_k)),
+                                          err=None, corr=None, partial_corr=None)
 
-                elif mode == 'nm':
-                    self._nm_global(data_groups, p0, lb, ub, var_pars, data_pars)
+                else:
+                    if mode == 'lsq':
+                        self._least_squares_global(data_groups, p0, lb, ub, var_pars, data_pars)
 
-                elif mode == 'odr':
-                    self._odr_global(data_groups, p0, var_pars, data_pars)
+                    elif mode == 'nm':
+                        self._nm_global(data_groups, p0, lb, ub, var_pars, data_pars)
+
+                    elif mode == 'odr':
+                        self._odr_global(data_groups, p0, var_pars, data_pars)
 
         self.unprep_run()