diff --git a/fsl/utils/fslsub.py b/fsl/utils/fslsub.py
index 713826a8c26637cc99159abeda423b2b6e1fba82..81a1fc942a6fe7192d13c70faac2931c2e15bd05 100644
--- a/fsl/utils/fslsub.py
+++ b/fsl/utils/fslsub.py
@@ -55,7 +55,7 @@ import importlib
 log = logging.getLogger(__name__)
 
 
-def submit(command,
+def submit(*command,
            minutes=None,
            queue=None,
            architecture=None,
@@ -70,9 +70,12 @@ def submit(command,
            flags=False,
            multi_threaded=None,
            verbose=False):
-    """Submits a given command to the cluster
+    """
+    Submits a given command to the cluster
+
+    You can pass the command and arguments as a single string, or as a regular or unpacked sequence.
 
-    :arg command:        single string with the job command
+    :arg command:        string or regular/unpacked sequence of strings with the job command
     :arg minutes:        Estimated job length in minutes, used to auto-set
                          queue name
     :arg queue:          Explicitly sets the queue name
@@ -101,7 +104,7 @@ def submit(command,
     :return:             string of submitted job id
     """
 
-    from fsl.utils.run import runfsl
+    from fsl.utils.run import runfsl, _prepareArgs
 
     base_cmd = ['fsl_sub']
 
@@ -132,7 +135,7 @@ def submit(command,
         base_cmd.append('-s')
         base_cmd.extend(multi_threaded)
 
-    base_cmd.append(command)
+    base_cmd.extend(_prepareArgs(command))
 
     return runfsl(*base_cmd).strip()