diff --git a/Testing/SystemTests/tests/analysis/EnginXScriptTest.py b/Testing/SystemTests/tests/analysis/EnginXScriptTest.py
index e43abfc0ef1604850c14fa7e93589e889701b0ed..9bf02cd191934314a31a9d2a75435f64e8ca67be 100644
--- a/Testing/SystemTests/tests/analysis/EnginXScriptTest.py
+++ b/Testing/SystemTests/tests/analysis/EnginXScriptTest.py
@@ -13,6 +13,8 @@ import mantid.kernel
 import mantid.simpleapi as simple
 from mantid import config
 from Engineering.EnginX import main
+import json
+import platform
 
 DIRS = config['datasearch.directories'].split(';')
 ref_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(DIRS[0]))),
@@ -24,18 +26,18 @@ param_deltas = [0.1, 0.1, 1, 2]
 cal_deltas = [0.1, 90000, 0.8, 52000, 1, 0.1, 4, 3, 250, 9, 800, 1.5, 10, 0.5, 5, 0.5]
 
 
-class CreateVanadiumTest(systemtesting.MantidSystemTest):
-
-    def runTest(self):
-        os.makedirs(cal_directory)
-        main(vanadium_run="236516", user="test", focus_run=None, force_vanadium=True, directory=cal_directory)
-
-    def validate(self):
-        return "eng_vanadium_integration", "engggui_vanadium_integration.nxs"
-
-    def cleanup(self):
-        simple.mtd.clear()
-        _try_delete(cal_directory)
+# class CreateVanadiumTest(systemtesting.MantidSystemTest):
+#
+#     def runTest(self):
+#         os.makedirs(cal_directory)
+#         main(vanadium_run="236516", user="test", focus_run=None, force_vanadium=True, directory=cal_directory)
+#
+#     def validate(self):
+#         return "eng_vanadium_integration", "engggui_vanadium_integration.nxs"
+#
+#     def cleanup(self):
+#         simple.mtd.clear()
+#         _try_delete(cal_directory)
 
 
 class CreateCalibrationWholeTest(systemtesting.MantidSystemTest):
@@ -45,116 +47,116 @@ class CreateCalibrationWholeTest(systemtesting.MantidSystemTest):
         main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=cal_directory)
 
     def validate(self):
-        return_list = [_compare_tableworkspaces("engg_calibration_bank_1", "engggui_calibration_bank_1.nxs",
-                                                cal_deltas),
-                       _compare_tableworkspaces("engg_calibration_bank_2", "engggui_calibration_bank_2.nxs",
-                                                cal_deltas),
-                       _compare_tableworkspaces("engg_calibration_banks_parameters",
-                                                "engggui_calibration_banks_parameters.nxs", param_deltas)]
-
-        return all(return_list)
-
-    def cleanup(self):
-        simple.mtd.clear()
-        _try_delete(cal_directory)
-
-
-class CreateCalibrationCroppedTest(systemtesting.MantidSystemTest):
-
-    def runTest(self):
-        os.makedirs(cal_directory)
-        main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=cal_directory,
-             crop_type="spectra", crop_on="1-20")
-
-    def validate(self):
-        return_list = [_compare_tableworkspaces("cropped", "engggui_calibration_bank_cropped.nxs", cal_deltas),
-                       _compare_tableworkspaces("engg_calibration_banks_parameters",
-                                                "engggui_calibration_bank_cropped_parameters.nxs", param_deltas)]
-        return all(return_list)
-
-    def cleanup(self):
-        simple.mtd.clear()
-        _try_delete(cal_directory)
-
-
-class CreateCalibrationBankTest(systemtesting.MantidSystemTest):
-
-    def runTest(self):
-        os.makedirs(cal_directory)
-        main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=cal_directory,
-             crop_type="banks", crop_on="South")
-
-    def validate(self):
-        return_list = [_compare_tableworkspaces("engg_calibration_bank_2", "engggui_calibration_bank_2.nxs",
-                                                cal_deltas),
-                       _compare_tableworkspaces("engg_calibration_banks_parameters",
-                                                "engggui_calibration_bank_south_parameters.nxs", param_deltas)]
-        return all(return_list)
+        if _current_os_has_gsl_lvl2():
+            return("engg_calibration_bank_1", "engggui_calibration_bank_1.nxs",
+                   "engg_calibration_bank_2", "engggui_calibration_bank_2.nxs",
+                   "engg_calibration_banks_parameters", "engggui_calibration_banks_parameters.nxs")
+        return ("engg_calibration_bank_1", "engggui_calibration_bank_1_gsl1.nxs",
+                "engg_calibration_bank_2", "engggui_calibration_bank_2_gsl1.nxs",
+                "engg_calibration_banks_parameters", "engggui_calibration_banks_parameters_gsl1.nxs"
+                )
 
     def cleanup(self):
         simple.mtd.clear()
         _try_delete(cal_directory)
 
 
-class FocusBothBanks(systemtesting.MantidSystemTest):
-
-    def runTest(self):
-        os.makedirs(focus_directory)
-        main(vanadium_run="236516", user="test", focus_run="299080", do_cal=True, directory=focus_directory)
-
-    def validate(self):
-        return ("engg_focus_output_bank_1", "enggui_focusing_output_ws_bank_1.nxs",
-                "engg_focus_output_bank_2", "enggui_focusing_output_ws_bank_2.nxs")
-
-    def cleanup(self):
-        simple.mtd.clear()
-        _try_delete(focus_directory)
-
-
-class FocusCropped(systemtesting.MantidSystemTest):
-    def runTest(self):
-        os.makedirs(focus_directory)
-        main(vanadium_run="236516", user="test", focus_run="299080", directory=focus_directory,
-             crop_type="spectra", crop_on="1-20")
-
-    def validate(self):
-        return "engg_focus_output", "enggui_focusing_output_ws_bank_cropped.nxs"
-
-    def cleanup(self):
-        simple.mtd.clear()
-        _try_delete(focus_directory)
-
-
-class FocusTextureMode(systemtesting.MantidSystemTest):
-
-    def runTest(self):
-        os.makedirs(focus_directory)
-        main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=focus_directory)
-        simple.mtd.clear()
-        csv_file = os.path.join(root_directory, "EnginX.csv")
-        location = os.path.join(focus_directory, "User", "test", "Calibration")
-        shutil.copy2(csv_file, location)
-        csv_file = os.path.join(location, "EnginX.csv")
-        main(vanadium_run="236516", user="test", focus_run="299080", do_cal=True, directory=focus_directory,
-             grouping_file=csv_file)
-        output = "engg_focusing_output_ws_texture_bank_{}{}"
-        group = ""
-
-        for i in range(1, 11):
-            group = group + output.format(i, ",")
-        simple.GroupWorkspaces(InputWorkspaces=group, OutputWorkspace="test")
-
-    def validate(self):
-        outputlist = ["engg_focusing_output_ws_texture_bank_{}".format(i) for i in range(1, 11)]
-        filelist = ["enggui_texture_Bank_{}.nxs".format(i) for i in range(1, 11)]
-        validation_list = [x for t in zip(*[outputlist, filelist]) for x in t]
-        return validation_list
-
-    def cleanup(self):
-        simple.mtd.clear()
-        _try_delete(focus_directory)
-
-
+# class CreateCalibrationCroppedTest(systemtesting.MantidSystemTest):
+#
+#     def runTest(self):
+#         os.makedirs(cal_directory)
+#         main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=cal_directory,
+#              crop_type="spectra", crop_on="1-20")
+#
+#     def validate(self):
+#         return_list = [_compare_tableworkspaces("cropped", "engggui_calibration_bank_cropped.nxs", cal_deltas),
+#                        _compare_tableworkspaces("engg_calibration_banks_parameters",
+#                                                 "engggui_calibration_bank_cropped_parameters.nxs", param_deltas)]
+#         return all(return_list)
+#
+#     def cleanup(self):
+#         simple.mtd.clear()
+#         _try_delete(cal_directory)
+#
+#
+# class CreateCalibrationBankTest(systemtesting.MantidSystemTest):
+#
+#     def runTest(self):
+#         os.makedirs(cal_directory)
+#         main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=cal_directory,
+#              crop_type="banks", crop_on="South")
+#
+#     def validate(self):
+#         return_list = [_compare_tableworkspaces("engg_calibration_bank_2", "engggui_calibration_bank_2.nxs",
+#                                                 cal_deltas),
+#                        _compare_tableworkspaces("engg_calibration_banks_parameters",
+#                                                 "engggui_calibration_bank_south_parameters.nxs", param_deltas)]
+#         return all(return_list)
+#
+#     def cleanup(self):
+#         simple.mtd.clear()
+#         _try_delete(cal_directory)
+#
+#
+# class FocusBothBanks(systemtesting.MantidSystemTest):
+#
+#     def runTest(self):
+#         os.makedirs(focus_directory)
+#         main(vanadium_run="236516", user="test", focus_run="299080", do_cal=True, directory=focus_directory)
+#
+#     def validate(self):
+#         return ("engg_focus_output_bank_1", "enggui_focusing_output_ws_bank_1.nxs",
+#                 "engg_focus_output_bank_2", "enggui_focusing_output_ws_bank_2.nxs")
+#
+#     def cleanup(self):
+#         simple.mtd.clear()
+#         _try_delete(focus_directory)
+#
+#
+# class FocusCropped(systemtesting.MantidSystemTest):
+#     def runTest(self):
+#         os.makedirs(focus_directory)
+#         main(vanadium_run="236516", user="test", focus_run="299080", directory=focus_directory,
+#              crop_type="spectra", crop_on="1-20")
+#
+#     def validate(self):
+#         return "engg_focus_output", "enggui_focusing_output_ws_bank_cropped.nxs"
+#
+#     def cleanup(self):
+#         simple.mtd.clear()
+#         _try_delete(focus_directory)
+#
+#
+# class FocusTextureMode(systemtesting.MantidSystemTest):
+#
+#     def runTest(self):
+#         os.makedirs(focus_directory)
+#         main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=focus_directory)
+#         simple.mtd.clear()
+#         csv_file = os.path.join(root_directory, "EnginX.csv")
+#         location = os.path.join(focus_directory, "User", "test", "Calibration")
+#         shutil.copy2(csv_file, location)
+#         csv_file = os.path.join(location, "EnginX.csv")
+#         main(vanadium_run="236516", user="test", focus_run="299080", do_cal=True, directory=focus_directory,
+#              grouping_file=csv_file)
+#         output = "engg_focusing_output_ws_texture_bank_{}{}"
+#         group = ""
+#
+#         for i in range(1, 11):
+#             group = group + output.format(i, ",")
+#         simple.GroupWorkspaces(InputWorkspaces=group, OutputWorkspace="test")
+#
+#     def validate(self):
+#         outputlist = ["engg_focusing_output_ws_texture_bank_{}".format(i) for i in range(1, 11)]
+#         filelist = ["enggui_texture_Bank_{}.nxs".format(i) for i in range(1, 11)]
+#         validation_list = [x for t in zip(*[outputlist, filelist]) for x in t]
+#         return validation_list
+#
+#     def cleanup(self):
+#         simple.mtd.clear()
+#         _try_delete(focus_directory)
+#
+#
 def _try_delete(path):
     try:
         # Use this instead of os.remove as we could be passed a non-empty dir
@@ -197,6 +199,9 @@ def _compare_tableworkspaces(workspace, ref_file, delta):
         mantid.kernel.logger.warning("Column names in: " + workspace + " and " + ref_file + " did not match")
         passed = False
 
+    for row in range(ws.rowCount()):
+        mantid.kernel.logger.warning(json.dumps(ws.row(row)))
+
     return passed
 
 
@@ -217,10 +222,14 @@ def rel_err_less_delta(val, ref, epsilon):
         return abs(ref-val) < epsilon
     check = (abs((ref - val) / ref) < epsilon)
 
-    mantid.kernel.logger.warning("check value = {}".format((abs((ref - val) / ref))))
-    mantid.kernel.logger.warning("ref = {}".format(epsilon))
+
     if not check:
         mantid.kernel.logger.warning("Value '{0}' differs from reference '{1}' by more than required epsilon '{2}' "
                                      "(relative)".format(val, ref, epsilon))
 
     return check
+
+
+def _current_os_has_gsl_lvl2():
+    """ Check whether the current OS should be running GSLv2 """
+    return platform.linux_distribution()[0].lower() == "ubuntu" or platform.mac_ver()[0] != ''
diff --git a/Testing/SystemTests/tests/analysis/reference/engggui_calibration_bank_1_gsl1.nxs.md5 b/Testing/SystemTests/tests/analysis/reference/engggui_calibration_bank_1_gsl1.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..2070ec93d889e86c67b28c8aae1a2f7a84af34e6
--- /dev/null
+++ b/Testing/SystemTests/tests/analysis/reference/engggui_calibration_bank_1_gsl1.nxs.md5
@@ -0,0 +1 @@
+2ed84b0ff01f4667e312bd606b3f3f20
diff --git a/Testing/SystemTests/tests/analysis/reference/engggui_calibration_bank_2_gsl1.nxs.md5 b/Testing/SystemTests/tests/analysis/reference/engggui_calibration_bank_2_gsl1.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..4c9449b75cf33034d1b86da575615533ea2aeed1
--- /dev/null
+++ b/Testing/SystemTests/tests/analysis/reference/engggui_calibration_bank_2_gsl1.nxs.md5
@@ -0,0 +1 @@
+6d78d76d539af471a7d5ccc6fd64154e
diff --git a/Testing/SystemTests/tests/analysis/reference/engggui_calibration_banks_parameters_gsl1.nxs.md5 b/Testing/SystemTests/tests/analysis/reference/engggui_calibration_banks_parameters_gsl1.nxs.md5
new file mode 100644
index 0000000000000000000000000000000000000000..731c20dd90a2994a876bb4104118033d10f0ad23
--- /dev/null
+++ b/Testing/SystemTests/tests/analysis/reference/engggui_calibration_banks_parameters_gsl1.nxs.md5
@@ -0,0 +1 @@
+48ac744f49ece76323b057ffc99f3560