diff --git a/src/channel.c b/src/channel.c
index 2de204259..b368d6cca 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -5471,7 +5471,9 @@ job_start(typval_T *argvars, char **argv_arg, jobopt_T *opt_arg)
 #endif
     jobopt_T	opt;
     ch_part_T	part;
+#ifdef USE_ARGV
     int		len;
+#endif
     int		i;
 
     job = job_alloc();
@@ -5604,6 +5606,7 @@ job_start(typval_T *argvars, char **argv_arg, jobopt_T *opt_arg)
     }
 
     /* Save the command used to start the job */
+#ifdef USE_ARGV
     len = 0;
     for (i = 0; argv[i] != NULL; i++)
 	len++;
@@ -5612,6 +5615,13 @@ job_start(typval_T *argvars, char **argv_arg, jobopt_T *opt_arg)
 	goto theend;
     for (i = 0; argv[i] != NULL; i++)
 	job->argv[i] = vim_strsave((char_u *)argv[i]);
+#else
+    i = 0;
+    job->argv = (char_u **)alloc(sizeof(char_u *) * 2);
+    if (job->argv == NULL)
+	goto theend;
+    job->argv[i++] = vim_strsave(cmd);
+#endif
     job->argv[i] = NULL;
 
 #ifdef USE_ARGV
