diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py
index 182fb33fee8068e04e8afa211f1fbb14bff0f4a8..feb949918831d334439833ca281b1895d0f96762 100644
--- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py
+++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py
@@ -156,25 +156,7 @@ def _merge_workspace_with_limits(focused_ws, q_lims):
                                  InputWorkspace2=focused_ws[1])
     focused_ws_conjoined = focused_ws[0]
 
-    if type(q_lims) == str:
-        q_min = []
-        q_max = []
-        try:
-            with open(q_lims, 'r') as f:
-                line_list = [line.rstrip('\n') for line in f]
-                for line in line_list[1:]:
-                    value_list = line.split()
-                    q_min.append(float(value_list[2]))
-                    q_max.append(float(value_list[3]))
-            q_min = np.array(q_min)
-            q_max = np.array(q_max)
-        except IOError:
-            raise RuntimeError("q_lims directory is not valid")
-    elif type(q_lims) == list or type(q_lims) == np.ndarray:
-        q_min = q_lims[0, :]
-        q_max = q_lims[1, :]
-    else:
-        raise RuntimeError("q_lims type is not valid")
+    q_min, q_max = _load_qlims(q_lims)
     bin_width = np.inf
     for i in range(q_min.size):
         pdf_x_array = focused_ws_conjoined.readX(i)
@@ -195,6 +177,29 @@ def _merge_workspace_with_limits(focused_ws, q_lims):
     return focused_data_combined
 
 
+def _load_qlims(q_lims):
+    if type(q_lims) == str or type(q_lims) == unicode:
+        q_min = []
+        q_max = []
+        try:
+            with open(q_lims, 'r') as f:
+                line_list = [line.rstrip('\n') for line in f]
+                for line in line_list[1:]:
+                    value_list = line.split()
+                    q_min.append(float(value_list[2]))
+                    q_max.append(float(value_list[3]))
+            q_min = np.array(q_min)
+            q_max = np.array(q_max)
+        except IOError:
+            raise RuntimeError("q_lims directory is not valid")
+    elif type(q_lims) == list or type(q_lims) == np.ndarray:
+        q_min = q_lims[0, :]
+        q_max = q_lims[1, :]
+    else:
+        raise RuntimeError("q_lims type is not valid")
+    return q_min, q_max
+
+
 def _calculate_self_scattering_correction(run_number, cal_file_name, sample_details):
     raw_ws = mantid.Load(Filename='POLARIS'+str(run_number)+'.nxs')
     mantid.SetSample(InputWorkspace=raw_ws,