diff --git a/MAC/Services/src/PipelineControl.py b/MAC/Services/src/PipelineControl.py
index 930181c8a80e69704a2960f8b3e874469fb7462b..06dc9ee314b1582e08128b79ac488daaa1aa6be7 100755
--- a/MAC/Services/src/PipelineControl.py
+++ b/MAC/Services/src/PipelineControl.py
@@ -70,6 +70,7 @@ from lofar.messaging.RPC import RPC, RPCTimeoutException
 import subprocess
 import datetime
 import os
+import re
 
 import logging
 logger = logging.getLogger(__name__)
@@ -139,11 +140,18 @@ class Slurm(object):
     cmdline = "ssh %s %s" % (self.headnode, cmdline)
     runCommand(cmdline)
 
-  def schedule(self, jobName, cmdline, sbatch_params=None):
+  def submit(self, jobName, cmdline, sbatch_params=None):
     if sbatch_params is None:
       sbatch_params = []
 
-    self._runCommand("sbatch --job-name=%s %s bash -c '%s'" % (jobName, " ".join(sbatch_params), cmdline))
+    stdout = self._runCommand("sbatch --job-name=%s %s bash -c '%s'" % (jobName, " ".join(sbatch_params), cmdline))
+
+    # Returns "Submitted batch job 3" -- extract ID
+    match = re.search("Submitted batch job (\d+)", stdout)
+    if not match:
+      return None
+
+    return match.group(1)
 
   def cancel(self, jobName):
     stdout = self._runCommand("scancel --jobname %s" % (jobName,))
@@ -324,7 +332,7 @@ class PipelineControl(OTDBBusListener):
 
     # Schedule runPipeline.sh
     logger.info("Scheduling SLURM job for runPipeline.sh")
-    slurm_job_id = self.slurm.schedule(parset.slurmJobName(),
+    slurm_job_id = self.slurm.submit(parset.slurmJobName(),
 
       "docker run --rm"
         " --net=host"
@@ -347,7 +355,7 @@ class PipelineControl(OTDBBusListener):
 
     # Schedule pipelineAborted.sh
     logger.info("Scheduling SLURM job for pipelineAborted.sh")
-    slurm_cancel_job_id = self.slurm.schedule("%s-aborted" % parset.slurmJobName(),
+    slurm_cancel_job_id = self.slurm.submit("%s-aborted" % parset.slurmJobName(),
 
       "docker run --rm"
         " --net=host"