diff --git a/Testing/SystemTests/tests/analysis/VesuvioCommandsTest.py b/Testing/SystemTests/tests/analysis/VesuvioCommandsTest.py
index 52185ccaef5f90129730fefdc05d5c03d6724c15..aac4406511c674f9b1c722ef481ba55a6f0c365a 100644
--- a/Testing/SystemTests/tests/analysis/VesuvioCommandsTest.py
+++ b/Testing/SystemTests/tests/analysis/VesuvioCommandsTest.py
@@ -169,7 +169,7 @@ class SingleSpectrumBackground(stresstesting.MantidStressTest):
 
         fitted_wsg = self._fit_results[0]
         self.assertTrue(isinstance(fitted_wsg, WorkspaceGroup))
-        self.assertEqual(2, len(fitted_wsg))
+        self.assertEqual(1, len(fitted_wsg))
 
         fitted_ws = fitted_wsg[0]
         self.assertTrue(isinstance(fitted_ws, MatrixWorkspace))
diff --git a/scripts/Inelastic/vesuvio/commands.py b/scripts/Inelastic/vesuvio/commands.py
index 3bff3de751d5dc20eaf4bf9a15c400d024e0c863..3ea5947bb4ba320bbac036c56bf336a830a15463 100644
--- a/scripts/Inelastic/vesuvio/commands.py
+++ b/scripts/Inelastic/vesuvio/commands.py
@@ -231,15 +231,15 @@ def fit_tof_iteration(sample_data, container_data, runs, flags):
             ms.UnGroupWorkspace(corrections_args["CorrectionWorkspaces"])
             ms.UnGroupWorkspace(corrections_args["CorrectedWorkspaces"])
 
-        for workspace in output_workspaces:
+            for workspace in output_workspaces:
 
-            group_name = runs + '_iteration_' + str(flags.get('iteration', None))
-            name = group_name + '_' + workspace.split('_')[1] + '_' + workspace.split('_')[-1]
-            result_workspaces.append(name)
-            if index == 0:
-                ms.RenameWorkspace(InputWorkspace=workspace, OutputWorkspace=name)
-            else:
-                ms.ConjoinWorkspaces(InputWorkspace1=name, InputWorkspace2=workspace)
+                group_name = runs + '_iteration_' + str(flags.get('iteration', None))
+                name = group_name + '_' + workspace.split('_')[1] + '_' + workspace.split('_')[-1]
+                result_workspaces.append(name)
+                if index == 0:
+                    ms.RenameWorkspace(InputWorkspace=workspace, OutputWorkspace=name)
+                else:
+                    ms.ConjoinWorkspaces(InputWorkspace1=name, InputWorkspace2=workspace)
 
         # Output the parameter workspaces
         params_pre_corr = runs + "_params_pre_correction_iteration_" + str(flags['iteration'])
@@ -249,10 +249,15 @@ def fit_tof_iteration(sample_data, container_data, runs, flags):
         AnalysisDataService.Instance().addOrReplace(params_name, pars_workspace)
         AnalysisDataService.Instance().addOrReplace(fit_name, fit_workspace)
 
-    output_groups.append(ms.GroupWorkspaces(InputWorkspaces=result_workspaces,
-                                            OutputWorkspace=group_name))
-    output_groups.append(ms.GroupWorkspaces(InputWorkspaces=data_workspaces,
-                                            OutputWorkspace=group_name + '_data'))
+    if result_workspaces:
+        output_groups.append(ms.GroupWorkspaces(InputWorkspaces=result_workspaces,
+                                                OutputWorkspace=group_name))
+
+    if data_workspaces:
+        output_groups.append(ms.GroupWorkspaces(InputWorkspaces=data_workspaces,
+                                                OutputWorkspace=group_name + '_data'))
+    else:
+        output_groups.append(fit_ws_name)
 
     if len(output_groups) > 1:
         result_ws = output_groups