diff --git a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/model.py b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/model.py
index 37ad97818b7af8b7adcff8fc4c0663c591df2789..892f26fa6986b375125b42b6418fa5e2599f15f0 100644
--- a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/model.py
+++ b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/model.py
@@ -47,7 +47,7 @@ class CalibrationModel(object):
         :param rb_num: The RB number for file creation.
         """
         van_integration, van_curves = vanadium_corrections.fetch_correction_workspaces(
-            vanadium_path, instrument)
+            vanadium_path, instrument, rb_number=rb_num)
         sample_workspace = self.load_sample(sample_path)
         output = self.run_calibration(sample_workspace, van_integration, van_curves)
         if plot_output:
diff --git a/scripts/Engineering/gui/engineering_diffraction/tabs/common/vanadium_corrections.py b/scripts/Engineering/gui/engineering_diffraction/tabs/common/vanadium_corrections.py
index d0a2914e942a180c2020c3b0f96c0071e979232e..89958249ba21ef10a29278753deb98451ba840d3 100644
--- a/scripts/Engineering/gui/engineering_diffraction/tabs/common/vanadium_corrections.py
+++ b/scripts/Engineering/gui/engineering_diffraction/tabs/common/vanadium_corrections.py
@@ -25,11 +25,12 @@ SAVED_FILE_CURVE_SUFFIX = "_precalculated_vanadium_run_bank_curves.nxs"
 SAVED_FILE_INTEG_SUFFIX = "_precalculated_vanadium_run_integration.nxs"
 
 
-def fetch_correction_workspaces(vanadium_path, instrument):
+def fetch_correction_workspaces(vanadium_path, instrument, rb_number=""):
     """
     Fetch workspaces from the file system or create new ones.
     :param vanadium_path: The path to the requested vanadium run raw data.
     :param instrument: The instrument the data came from.
+    :param rb_number:
     :return: The resultant integration and curves workspaces.
     """
     vanadium_number = path_handling.get_run_number_from_path(vanadium_path, instrument)
@@ -38,6 +39,12 @@ def fetch_correction_workspaces(vanadium_path, instrument):
         try:
             integ_workspace = Load(Filename=integ_path, OutputWorkspace=INTEGRATED_WORKSPACE_NAME)
             curves_workspace = Load(Filename=curves_path, OutputWorkspace=CURVES_WORKSPACE_NAME)
+            if rb_number:
+                user_integ, user_curves = _generate_saved_workspace_file_paths(vanadium_number,
+                                                                               rb_num=rb_number)
+                if not path.exists(user_integ) and not path.exists(user_curves):
+                    _save_correction_files(integ_workspace, user_integ, curves_workspace,
+                                           user_curves)
             return integ_workspace, curves_workspace
         except RuntimeError as e:
             logger.error(
@@ -45,6 +52,10 @@ def fetch_correction_workspaces(vanadium_path, instrument):
                 + str(e))
     integ_workspace, curves_workspace = _calculate_vanadium_correction(vanadium_path)
     _save_correction_files(integ_workspace, integ_path, curves_workspace, curves_path)
+    if rb_number:
+        user_integ, user_curves = _generate_saved_workspace_file_paths(vanadium_number,
+                                                                       rb_num=rb_number)
+        _save_correction_files(integ_workspace, user_integ, curves_workspace, user_curves)
     return integ_workspace, curves_workspace
 
 
@@ -92,7 +103,7 @@ def _save_correction_files(integration_workspace, integration_path, curves_works
         return
 
 
-def _generate_saved_workspace_file_paths(vanadium_number):
+def _generate_saved_workspace_file_paths(vanadium_number, rb_num=""):
     """
     Generate file paths based on a vanadium run number.
     :param vanadium_number: The number of the vanadium run.
@@ -100,7 +111,11 @@ def _generate_saved_workspace_file_paths(vanadium_number):
     """
     integrated_filename = vanadium_number + SAVED_FILE_INTEG_SUFFIX
     curves_filename = vanadium_number + SAVED_FILE_CURVE_SUFFIX
-    vanadium_dir = path.join(path_handling.OUT_FILES_ROOT_DIR, VANADIUM_DIRECTORY_NAME)
+    if rb_num:
+        vanadium_dir = path.join(path_handling.OUT_FILES_ROOT_DIR, "User", rb_num,
+                                 VANADIUM_DIRECTORY_NAME)
+    else:
+        vanadium_dir = path.join(path_handling.OUT_FILES_ROOT_DIR, VANADIUM_DIRECTORY_NAME)
     if not path.exists(vanadium_dir):
         makedirs(vanadium_dir)
     return path.join(vanadium_dir, integrated_filename), path.join(vanadium_dir, curves_filename)