diff --git a/src/channel.c b/src/channel.c
index b883b47..9023808 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -5616,7 +5616,7 @@
 	/* Make a copy of argv_arg for job->jv_argv. */
 	for (i = 0; argv_arg[i] != NULL; i++)
 	    argc++;
-	argv = (char **)alloc(sizeof(char_u *) * (argc + 1));
+	argv = (char **)alloc(sizeof(char *) * (argc + 1));
 	if (argv == NULL)
 	    goto theend;
 	for (i = 0; i < argc; i++)
@@ -5659,7 +5659,7 @@
     }
 
     /* Save the command used to start the job. */
-    job->jv_argv = (char_u **)argv;
+    job->jv_argv = argv;
 
 #ifdef USE_ARGV
     if (ch_log_active())
@@ -5690,7 +5690,7 @@
 #ifndef USE_ARGV
     vim_free(ga.ga_data);
 #endif
-    if ((char_u **)argv != job->jv_argv)
+    if (argv != job->jv_argv)
 	vim_free(argv);
     free_job_options(&opt);
     return job;
@@ -5764,7 +5764,7 @@
 	dict_add_list(dict, "cmd", l);
 	if (job->jv_argv != NULL)
 	    for (i = 0; job->jv_argv[i] != NULL; i++)
-		list_append_string(l, job->jv_argv[i], -1);
+		list_append_string(l, (char_u *)job->jv_argv[i], -1);
     }
 }
 
diff --git a/src/structs.h b/src/structs.h
index 5c4a74c..b70b00f 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -1488,7 +1488,7 @@
     int		jv_copyID;
 
     channel_T	*jv_channel;	/* channel for I/O, reference counted */
-    char_u	**jv_argv;	/* command line used to start the job */
+    char	**jv_argv;	/* command line used to start the job */
 };
 
 /*
diff --git a/src/version.c b/src/version.c
index 0348dc1..1589ed9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1827,
+/**/
     1826,
 /**/
     1825,
