diff --git a/src/xfel_calibrate/calibrate.py b/src/xfel_calibrate/calibrate.py
index 26e45f0fe1e7e439f85a166bb92c8e97df86a27b..1eb94a8f636dd9df8ea5e84b0f080120cce30961 100755
--- a/src/xfel_calibrate/calibrate.py
+++ b/src/xfel_calibrate/calibrate.py
@@ -225,7 +225,8 @@ def create_finalize_script(fmt_args, temp_path, job_list) -> str:
     return f_name
 
 
-def run_finalize(fmt_args, temp_path, job_list, sequential=False):
+def run_finalize(
+    fmt_args, temp_path, job_list, sequential=False, partition="exfel"):
     finalize_script = create_finalize_script(fmt_args, temp_path, job_list)
 
     cmd = []
@@ -238,7 +239,7 @@ def run_finalize(fmt_args, temp_path, job_list, sequential=False):
             '--open-mode=append',  # So we can see if it's preempted & requeued
             '--job-name', 'xfel-cal-finalize',
             '--time', finalize_time_limit,
-            '--partition', 'upex-middle',
+            '--partition', partition,
             "--dependency=afterany:" + ":".join(str(j) for j in job_list),
         ]
         print(" ".join(cmd))
@@ -848,7 +849,7 @@ def run(argv=None):
                 'report_to': report_to,
                 'in_folder': folder,
                 'request_time': request_time,
-                'submission_time': submission_time
+                'submission_time': submission_time,
                 }
 
     joblist.append(run_finalize(
@@ -856,6 +857,7 @@ def run(argv=None):
         temp_path=run_tmp_path,
         job_list=joblist,
         sequential=args["no_cluster_job"],
+        partition=args["slurm_partition"] or "exfel",
     ))
 
     if any(j is not None for j in joblist):
diff --git a/src/xfel_calibrate/repeat.py b/src/xfel_calibrate/repeat.py
index 95d41b1714c1ade7aba3c09b935a8fbe8a69ece0..12d4b30057022f657d9d44faaba7a121d5d8dcb0 100644
--- a/src/xfel_calibrate/repeat.py
+++ b/src/xfel_calibrate/repeat.py
@@ -93,6 +93,7 @@ def main(argv=None):
         temp_path=working_dir,
         job_list=joblist,
         sequential=args.no_cluster_job,
+        partition=args.slurm_partition
     ))
 
     if any(j is not None for j in joblist):