diff --git a/src/Make_vms.mms b/src/Make_vms.mms
index 7c5a728..f635d56 100644
--- a/src/Make_vms.mms
+++ b/src/Make_vms.mms
@@ -2,9 +2,9 @@
 # Makefile for Vim on OpenVMS
 #
 # Maintainer:   Zoltan Arpadffy <arpadffy@polarhome.com>
-# Last change:  2019 Nov 21
+# Last change:  2019 Nov 30
 #
-# This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
+# This script has been tested on VMS 6.2 to 8.4 on DEC Alpha, VAX and IA64
 # with MMS and MMK
 #
 # The following could be built:
@@ -521,7 +521,9 @@
 
 # Link the target
 $(TARGET) : $(OBJ)
-	$(LD_DEF) $(LDFLAGS) /exe=$(TARGET) $+ $(ALL_LIBS)
+#     make an OPT file - as the obj file list is too long for one command line
+	-@ DIRECTORY *.OBJ. /BRIEF/COLUMNS=1/NOHEADING/NOTRAILING /SELECT=FILE=(NONODE,NODEVICE,NODIRECTORY,NOVERSION)/OUTPUT=ALL_OBJS_LIST.OPT
+	$(LD_DEF) $(LDFLAGS) /exe=$(TARGET) ALL_OBJS_LIST.OPT/OPT $(ALL_LIBS)
 
 .c.obj :
 	$(CC_DEF) $(ALL_CFLAGS) $<
@@ -536,7 +538,7 @@
 	-@ write pd "char_u *default_vim_dir = (char_u *)"$(VIMLOC)";"
 	-@ write pd "char_u *default_vimruntime_dir = (char_u *)"$(VIMRUN)";"
 	-@ write pd "char_u *all_cflags = (char_u *)""$(CC_DEF)$(ALL_CFLAGS_VER)"";"
-	-@ write pd "char_u *all_lflags = (char_u *)""$(LD_DEF)$(LDFLAGS) /exe=$(TARGET) *.OBJ $(ALL_LIBS)"";"
+	-@ write pd "char_u *all_lflags = (char_u *)""$(LD_DEF)$(LDFLAGS) /exe=$(TARGET) ALL_OBJS_LIST.OPT/OPT $(ALL_LIBS)"";"
 	-@ write pd "char_u *compiler_version = (char_u *) ""''CC_VER'"";"
 	-@ write pd "char_u *compiled_user = (char_u *) "$(VIMUSER)";"
 	-@ write pd "char_u *compiled_sys  = (char_u *) "$(VIMHOST)";"
@@ -544,8 +546,7 @@
 	-@ close pd
 
 if_perl.c : if_perl.xs
-	-@ $(PERL) PERL_ROOT:[LIB.ExtUtils]xsubpp -prototypes -typemap -
- PERL_ROOT:[LIB.ExtUtils]typemap if_perl.xs >> $@
+	-@ $(PERL) PERL_ROOT:[LIB.ExtUtils]xsubpp -prototypes -typemap - PERL_ROOT:[LIB.ExtUtils]typemap if_perl.xs >> $@
 
 make_vms.mms :
 	-@ write sys$output "The name of the makefile MUST be <MAKE_VMS.MMS> !!!"
@@ -832,7 +833,7 @@
  arabic.c
 map.obj : map.c vim.h [.auto]config.h feature.h os_unix.h   \
  ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
- [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
+ [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h
 mark.obj : mark.c vim.h [.auto]config.h feature.h os_unix.h   \
  ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
  [.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h
diff --git a/src/os_unix.c b/src/os_unix.c
index 6fa0702..fd50eb3 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -1671,7 +1671,7 @@
         xterm_display_allocated = TRUE;
     }
     smsg(_("restoring display %s"), xterm_display == NULL
-			      ? (char *)mch_getenv("DISPLAY") : xterm_display);
+		    ? (char *)mch_getenv((char_u *)"DISPLAY") : xterm_display);
 
     clear_xterm_clip();
     x11_window = 0;
@@ -6257,7 +6257,7 @@
 		maxfd = ConnectionNumber(xterm_dpy);
 
 	    /* An event may have already been read but not handled.  In
-	     * particulary, XFlush may cause this. */
+	     * particularly, XFlush may cause this. */
 	    xterm_update();
 	}
 # endif
diff --git a/src/os_vms.c b/src/os_vms.c
index 80e585b..7693776 100644
--- a/src/os_vms.c
+++ b/src/os_vms.c
@@ -382,7 +382,7 @@
     if (vms_match_num == 0) {
 	/* first time through, setup some things */
 	if (NULL == vms_fmatch) {
-	    vms_fmatch = ALLOC_MULT(char *, EXPL_ALLOC_INC);
+	    vms_fmatch = ALLOC_MULT(char_u *, EXPL_ALLOC_INC);
 	    if (!vms_fmatch)
 		return 0;
 	    vms_match_alloced = EXPL_ALLOC_INC;
@@ -443,7 +443,7 @@
     *num_file = 0;			/* default: no files found	*/
     files_alloced = EXPL_ALLOC_INC;
     files_free = EXPL_ALLOC_INC;
-    *file = ALLOC_MULT(char_u **, files_alloced);
+    *file = ALLOC_MULT(char_u *, files_alloced);
     if (*file == NULL)
     {
 	*num_file = 0;
diff --git a/src/version.c b/src/version.c
index 65f7235..f2c26bb 100644
--- a/src/version.c
+++ b/src/version.c
@@ -738,6 +738,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2370,
+/**/
     2369,
 /**/
     2368,
