diff --git a/scripts/SANS/sans/algorithm_detail/batch_execution.py b/scripts/SANS/sans/algorithm_detail/batch_execution.py
index 8cd70fb9ba98c34a38ced4767ff9f20595dd2c8b..6a5fd12eda8b9fa3bd11d4a3dd5ad6e4f50691a4 100644
--- a/scripts/SANS/sans/algorithm_detail/batch_execution.py
+++ b/scripts/SANS/sans/algorithm_detail/batch_execution.py
@@ -146,7 +146,7 @@ def single_reduction_for_batch(state, use_optimizations, output_mode, plot_resul
     # Clean up other workspaces if the optimizations have not been turned on.
     # -----------------------------------------------------------------------
     if not use_optimizations:
-        delete_optimization_workspaces(reduction_packages, workspaces, monitors)
+        delete_optimization_workspaces(reduction_packages, workspaces, monitors, save_can)
 
     out_scale_factors = [reduction_package.out_scale_factor for reduction_package in reduction_packages]
     out_shift_factors = [reduction_package.out_shift_factor for reduction_package in reduction_packages]
@@ -1021,7 +1021,7 @@ def delete_reduced_workspaces(reduction_packages):
         _delete_workspaces(delete_alg, workspaces_to_delete)
 
 
-def delete_optimization_workspaces(reduction_packages, workspaces, monitors):
+def delete_optimization_workspaces(reduction_packages, workspaces, monitors, save_can):
     """
     Deletes all workspaces which are used for optimizations. This can be loaded workspaces or can optimizations
 
@@ -1056,12 +1056,13 @@ def delete_optimization_workspaces(reduction_packages, workspaces, monitors):
 
     for reduction_package in reduction_packages:
         # Delete can optimizations
-        optimizations_to_delete = [reduction_package.reduced_lab_can,
-                                   reduction_package.reduced_lab_can_count,
+        optimizations_to_delete = [reduction_package.reduced_lab_can_count,
                                    reduction_package.reduced_lab_can_norm,
-                                   reduction_package.reduced_hab_can,
                                    reduction_package.reduced_hab_can_count,
                                    reduction_package.reduced_hab_can_norm]
+        if not save_can:
+            optimizations_to_delete.extend([reduction_package.reduced_lab_can,
+                                            reduction_package.reduced_hab_can])
         _delete_workspaces(delete_alg, optimizations_to_delete)