diff --git a/lib/luxi.py b/lib/luxi.py
index 5799d40e57753987ffb4a478e7eb50a4246a1a61..108b8362eb5429015d6b6358ec68596756047fe4 100644
--- a/lib/luxi.py
+++ b/lib/luxi.py
@@ -473,13 +473,13 @@ class Client(object):
 
   def SubmitJob(self, ops):
     ops_state = map(lambda op: op.__getstate__(), ops)
-    return self.CallMethod(REQ_SUBMIT_JOB, ops_state)
+    return self.CallMethod(REQ_SUBMIT_JOB, (ops_state, ))
 
   def SubmitManyJobs(self, jobs):
     jobs_state = []
     for ops in jobs:
       jobs_state.append([op.__getstate__() for op in ops])
-    return self.CallMethod(REQ_SUBMIT_MANY_JOBS, jobs_state)
+    return self.CallMethod(REQ_SUBMIT_MANY_JOBS, (jobs_state, ))
 
   def CancelJob(self, job_id):
     return self.CallMethod(REQ_CANCEL_JOB, (job_id, ))
diff --git a/lib/server/masterd.py b/lib/server/masterd.py
index 94c60f40ff3859541be897618aa43861752f717b..67ea5ca7fd8639594968d3a41808ad3870408459 100644
--- a/lib/server/masterd.py
+++ b/lib/server/masterd.py
@@ -268,13 +268,15 @@ class ClientOps:
 
     if method == luxi.REQ_SUBMIT_JOB:
       logging.info("Received new job")
-      ops = [opcodes.OpCode.LoadOpCode(state) for state in args]
+      (job_def, ) = args
+      ops = [opcodes.OpCode.LoadOpCode(state) for state in job_def]
       return queue.SubmitJob(ops)
 
     if method == luxi.REQ_SUBMIT_MANY_JOBS:
       logging.info("Received multiple jobs")
+      (job_defs, ) = args
       jobs = []
-      for ops in args:
+      for ops in job_defs:
         jobs.append([opcodes.OpCode.LoadOpCode(state) for state in ops])
       return queue.SubmitManyJobs(jobs)