diff --git a/scripts/Diffraction/isis_powder/gem.py b/scripts/Diffraction/isis_powder/gem.py
index a53441e0d16bd8c58511b025169c5e21904902ee..b8a828d0e1f9a5b8e9687a179035d911261157a1 100644
--- a/scripts/Diffraction/isis_powder/gem.py
+++ b/scripts/Diffraction/isis_powder/gem.py
@@ -22,11 +22,13 @@ class Gem(AbstractInst):
 
     def focus(self, **kwargs):
         self._inst_settings.update_attributes(kwargs=kwargs)
+        check_mode_is_valid(self._inst_settings)
         return self._focus(run_number_string=self._inst_settings.run_number,
                            do_van_normalisation=self._inst_settings.do_van_norm)
 
     def create_vanadium(self, **kwargs):
         self._inst_settings.update_attributes(kwargs=kwargs)
+        check_mode_is_valid(self._inst_settings)
         # First get a run_details object to find out the vanadium number
         run_details = self._get_run_details(run_number_string=self._inst_settings.run_in_range)
         # Set the run and vanadium run equal
@@ -67,6 +69,21 @@ class Gem(AbstractInst):
         return common.crop_banks_in_tof(van_ws_to_crop, self._inst_settings.vanadium_cropping_values)
 
 
+def check_mode_is_valid(inst_settings):
+    set_mode = str(inst_settings.mode).lower()
+    # Allowed values PDF / Rietveld
+    allowed_modes = ["Rietveld", "PDF"]
+
+    if set_mode not in [val.lower() for val in allowed_modes]:
+        e_str = "The mode entered : '" + str(inst_settings.mode) + "' is not valid. Valid values are:\n"
+        for val in allowed_modes:
+            e_str += val + '\n'
+        raise ValueError(e_str)
+    else:
+        # Valid ensure its lower case version
+        inst_settings.mode = set_mode
+
+
 def _gem_generate_inst_name(run_number):
     if isinstance(run_number, list):
         # Use recursion on lists
diff --git a/scripts/Diffraction/isis_powder/gem_routines/gem_algs.py b/scripts/Diffraction/isis_powder/gem_routines/gem_algs.py
index 3e4bba06b542c30dd095951e8c2cd5723e549d00..981df0a393c38ca60e2d62529b18432740678b0c 100644
--- a/scripts/Diffraction/isis_powder/gem_routines/gem_algs.py
+++ b/scripts/Diffraction/isis_powder/gem_routines/gem_algs.py
@@ -26,8 +26,11 @@ def get_run_details(run_number_string, inst_settings):
 
     label = common.cal_map_dictionary_key_helper(cycle_map, "label")
     offset_file_name = common.cal_map_dictionary_key_helper(cycle_map, "offset_file_name")
-    empty_runs = common.cal_map_dictionary_key_helper(cycle_map, "empty_run_numbers")
-    vanadium_runs = common.cal_map_dictionary_key_helper(cycle_map, "vanadium_run_numbers")
+
+    chopper_dict = common.cal_map_dictionary_key_helper(cycle_map, inst_settings.mode)
+
+    empty_runs = common.cal_map_dictionary_key_helper(chopper_dict, "empty_run_numbers")
+    vanadium_runs = common.cal_map_dictionary_key_helper(chopper_dict, "vanadium_run_numbers")
 
     # For GEM the grouping and offset file are identical
     calibration_folder = os.path.normpath(os.path.expanduser(inst_settings.calibration_dir))
diff --git a/scripts/Diffraction/isis_powder/gem_routines/gem_param_mapping.py b/scripts/Diffraction/isis_powder/gem_routines/gem_param_mapping.py
index e21ed9a9e717776f7f27533597e7d8c169d1ca78..5737a191e8271ba831d65d1dd2ab47f617f2edc7 100644
--- a/scripts/Diffraction/isis_powder/gem_routines/gem_param_mapping.py
+++ b/scripts/Diffraction/isis_powder/gem_routines/gem_param_mapping.py
@@ -6,6 +6,7 @@ attr_mapping = [("calibration_directory",       "calibration_dir"),
                 ("config_file",                 "config_file"),
                 ("do_absorb_corrections",       "do_absorb_corrections"),
                 ("focused_cropping_values",     "focused_cropping_values"),
+                ("mode",                        "mode"),
                 ("multiple_scattering",         "multiple_scattering"),
                 ("raw_tof_cropping_values",     "raw_tof_cropping_values"),
                 ("run_in_range",                "run_in_range"),