diff --git a/src/INSTALLpc.txt b/src/INSTALLpc.txt
index c72875a..ce80a9a 100644
--- a/src/INSTALLpc.txt
+++ b/src/INSTALLpc.txt
@@ -1023,7 +1023,7 @@
   Move the "vim81" subdirectory into the subdirectory where you want Vim
   to be installed.  Typically, this subdirectory will be named "vim".
   If you already have a "vim81" subdirectory in "vim", delete it first
-  by running its uninstal.exe program.
+  by running its uninstall.exe program.
 
   E.  Install Vim
   ---------------
diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak
index 521ec3a..01f6233 100644
--- a/src/Make_cyg_ming.mak
+++ b/src/Make_cyg_ming.mak
@@ -764,7 +764,7 @@
 	$(OUTDIR)/os_mswin.o \
 	$(OUTDIR)/os_win32.o \
 	$(OUTDIR)/pathdef.o \
-	$(OUTDIR)/popupmnu.o \
+	$(OUTDIR)/popupmenu.o \
 	$(OUTDIR)/popupwin.o \
 	$(OUTDIR)/profiler.o \
 	$(OUTDIR)/quickfix.o \
@@ -1015,7 +1015,7 @@
 LFLAGS += -Wl,-Map=$(TARGET).map
 endif
 
-all: $(MAIN_TARGET) vimrun.exe xxd/xxd.exe tee/tee.exe install.exe uninstal.exe GvimExt/gvimext.dll
+all: $(MAIN_TARGET) vimrun.exe xxd/xxd.exe tee/tee.exe install.exe uninstall.exe GvimExt/gvimext.dll
 
 vimrun.exe: vimrun.c
 	$(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIB)
@@ -1023,8 +1023,8 @@
 install.exe: dosinst.c
 	$(CC) $(CFLAGS) -o install.exe dosinst.c $(LIB) -lole32 -luuid
 
-uninstal.exe: uninstal.c
-	$(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB) -lole32
+uninstall.exe: uninstall.c
+	$(CC) $(CFLAGS) -o uninstall.exe uninstall.c $(LIB) -lole32
 
 ifeq ($(VIMDLL),yes)
 $(TARGET): $(OUTDIR) $(OBJ)
@@ -1068,7 +1068,7 @@
 	-$(DEL) $(OUTDIR)$(DIRSLASH)*.res
 	-$(DEL) $(OUTDIR)$(DIRSLASH)pathdef.c
 	-rmdir $(OUTDIR)
-	-$(DEL) $(MAIN_TARGET) vimrun.exe install.exe uninstal.exe
+	-$(DEL) $(MAIN_TARGET) vimrun.exe install.exe uninstall.exe
 ifdef PERL
 	-$(DEL) if_perl.c
 	-$(DEL) auto$(DIRSLASH)if_perl.c
diff --git a/src/Make_morph.mak b/src/Make_morph.mak
index 9c070c8..f0d9cf8 100644
--- a/src/Make_morph.mak
+++ b/src/Make_morph.mak
@@ -81,7 +81,7 @@
 	option.c						\
 	optionstr.c						\
 	os_amiga.c						\
-	popupmnu.c						\
+	popupmenu.c						\
 	profiler.c						\
 	quickfix.c						\
 	regexp.c						\
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index 9146c79..762b349 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -771,7 +771,7 @@
 	$(OUTDIR)\os_mswin.obj \
 	$(OUTDIR)\os_win32.obj \
 	$(OUTDIR)\pathdef.obj \
-	$(OUTDIR)\popupmnu.obj \
+	$(OUTDIR)\popupmenu.obj \
 	$(OUTDIR)\popupwin.obj \
 	$(OUTDIR)\profiler.obj \
 	$(OUTDIR)\quickfix.obj \
@@ -1280,7 +1280,7 @@
 all:	$(MAIN_TARGET) \
 	vimrun.exe \
 	install.exe \
-	uninstal.exe \
+	uninstall.exe \
 	xxd/xxd.exe \
 	tee/tee.exe \
 	GvimExt/gvimext.dll
@@ -1339,8 +1339,8 @@
 	- if exist install.exe del install.exe
 	ren dosinst.exe install.exe
 
-uninstal.exe: uninstal.c
-	$(CC) /nologo -DNDEBUG -DWIN32 uninstal.c shell32.lib advapi32.lib \
+uninstall.exe: uninstall.c
+	$(CC) /nologo -DNDEBUG -DWIN32 uninstall.c shell32.lib advapi32.lib \
 		-link -subsystem:$(SUBSYSTEM_TOOLS)
 
 vimrun.exe: vimrun.c
@@ -1387,7 +1387,7 @@
 !endif
 	- if exist vimrun.exe del vimrun.exe
 	- if exist install.exe del install.exe
-	- if exist uninstal.exe del uninstal.exe
+	- if exist uninstall.exe del uninstall.exe
 	- if exist if_perl.c del if_perl.c
 	- if exist auto\if_perl.c del auto\if_perl.c
 	- if exist dimm.h del dimm.h
@@ -1643,7 +1643,7 @@
 $(OUTDIR)/pathdef.obj:	$(OUTDIR) $(PATHDEF_SRC) $(INCL)
 	$(CC) $(CFLAGS_OUTDIR) $(PATHDEF_SRC)
 
-$(OUTDIR)/popupmnu.obj:	$(OUTDIR) popupmnu.c  $(INCL)
+$(OUTDIR)/popupmenu.obj:	$(OUTDIR) popupmenu.c  $(INCL)
 
 $(OUTDIR)/popupwin.obj:	$(OUTDIR) popupwin.c  $(INCL)
 
@@ -1841,7 +1841,7 @@
 	proto/os_mswin.pro \
 	proto/winclip.pro \
 	proto/os_win32.pro \
-	proto/popupmnu.pro \
+	proto/popupmenu.pro \
 	proto/popupwin.pro \
 	proto/profiler.pro \
 	proto/quickfix.pro \
diff --git a/src/Make_vms.mms b/src/Make_vms.mms
index 3b45b78..6053f9b 100644
--- a/src/Make_vms.mms
+++ b/src/Make_vms.mms
@@ -2,7 +2,7 @@
 # Makefile for Vim on OpenVMS
 #
 # Maintainer:   Zoltan Arpadffy <arpadffy@polarhome.com>
-# Last change:  2019 Sep 04
+# Last change:  2019 Sep 27
 #
 # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
 # with MMS and MMK
@@ -318,7 +318,7 @@
 	indent.c insexpand.c json.c list.c main.c map.c mark.c menu.c mbyte.c \
 	memfile.c memline.c message.c misc1.c misc2.c mouse.c move.c normal.c \
 	ops.c \
-	option.c optionstr.c popupmnu.c popupwin.c profiler.c quickfix.c \
+	option.c optionstr.c popupmenu.c popupwin.c profiler.c quickfix.c \
 	regexp.c register.c scriptfile.c \
 	search.c session.c sha256.c sign.c spell.c spellfile.c spellsuggest.c \
 	syntax.c tag.c \
@@ -340,7 +340,7 @@
 	map.obj mark.obj menu.obj memfile.obj memline.obj message.obj \
 	misc1.obj misc2.obj mouse.obj move.obj mbyte.obj normal.obj ops.obj \
 	option.obj \
-	optionstr.obj popupmnu.obj popupwin.obj profiler.obj quickfix.obj \
+	optionstr.obj popupmenu.obj popupwin.obj profiler.obj quickfix.obj \
 	regexp.obj register.obj scriptfile.obj \
 	search.obj session.obj sha256.obj sign.obj spell.obj spellfile.obj \
 	spellsuggest.obj syntax.obj tag.obj term.obj termlib.obj testing.obj \
@@ -737,7 +737,7 @@
  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
-popupmnu.obj : popupmnu.c vim.h [.auto]config.h feature.h os_unix.h \
+popupmenu.obj : popupmenu.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/Makefile b/src/Makefile
index 0f949a8..75085ee 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1638,7 +1638,7 @@
 	optionstr.c \
 	os_unix.c \
 	auto/pathdef.c \
-	popupmnu.c \
+	popupmenu.c \
 	popupwin.c \
 	profiler.c \
 	pty.c \
@@ -1774,7 +1774,7 @@
 	objects/optionstr.o \
 	objects/os_unix.o \
 	objects/pathdef.o \
-	objects/popupmnu.o \
+	objects/popupmenu.o \
 	objects/popupwin.o \
 	objects/profiler.o \
 	objects/pty.o \
@@ -1935,7 +1935,7 @@
 	optionstr.pro \
 	os_mac_conv.pro \
 	os_unix.pro \
-	popupmnu.pro \
+	popupmenu.pro \
 	popupwin.pro \
 	profiler.pro \
 	pty.pro \
@@ -3341,8 +3341,8 @@
 objects/pathdef.o: auto/pathdef.c
 	$(CCC) -o $@ auto/pathdef.c
 
-objects/popupmnu.o: popupmnu.c
-	$(CCC) -o $@ popupmnu.c
+objects/popupmenu.o: popupmenu.c
+	$(CCC) -o $@ popupmenu.c
 
 objects/popupwin.o: popupwin.c
 	$(CCC) -o $@ popupwin.c
@@ -3823,7 +3823,7 @@
  os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
  proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
  proto.h globals.h
-objects/popupmnu.o: popupmnu.c vim.h protodef.h auto/config.h feature.h os_unix.h \
+objects/popupmenu.o: popupmenu.c vim.h protodef.h auto/config.h feature.h os_unix.h \
  auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
  proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
  proto.h globals.h
diff --git a/src/README.md b/src/README.md
index b08f0b4..8d21b5f 100644
--- a/src/README.md
+++ b/src/README.md
@@ -58,7 +58,7 @@
 ops.c		| handling operators ("d", "y", "p")
 option.c	| options
 optionstr.c	| handling string options
-popupmnu.c	| popup menu
+popupmenu.c	| popup menu
 popupwin.c	| popup window
 profiler.c	| vim script profiler
 quickfix.c	| quickfix commands (":make", ":cn")
diff --git a/src/dosinst.c b/src/dosinst.c
index 0ea879a..2ff0842 100644
--- a/src/dosinst.c
+++ b/src/dosinst.c
@@ -14,7 +14,7 @@
  */
 
 /*
- * Include common code for dosinst.c and uninstal.c.
+ * Include common code for dosinst.c and uninstall.c.
  */
 #define DOSINST
 #include "dosinst.h"
@@ -1686,7 +1686,7 @@
 
     /* For the NSIS installer use the generated uninstaller. */
     if (interactive)
-	sprintf(uninstall_string, "%s\\uninstal.exe", installdir);
+	sprintf(uninstall_string, "%s\\uninstall.exe", installdir);
     else
 	sprintf(uninstall_string, "%s\\uninstall-gui.exe", installdir);
 
@@ -1962,7 +1962,7 @@
 	    return;
     }
     if (build_shortcut("Uninstall",
-		interactive ? "uninstal.exe" : "uninstall-gui.exe", "",
+		interactive ? "uninstall.exe" : "uninstall-gui.exe", "",
 					   VIM_STARTMENU, installdir) == FAIL)
 	return;
     /* For Windows NT the working dir of the vimtutor.bat must be right,
diff --git a/src/dosinst.h b/src/dosinst.h
index 7cb4139..a83bb08 100644
--- a/src/dosinst.h
+++ b/src/dosinst.h
@@ -7,7 +7,7 @@
  * See README.txt for an overview of the Vim source code.
  */
 /*
- * dosinst.h: Common code for dosinst.c and uninstal.c
+ * dosinst.h: Common code for dosinst.c and uninstall.c
  */
 
 /* Visual Studio 2005 has 'deprecated' many of the standard CRT functions */
diff --git a/src/popupmnu.c b/src/popupmenu.c
similarity index 99%
rename from src/popupmnu.c
rename to src/popupmenu.c
index da70c5f..846dbc2 100644
--- a/src/popupmnu.c
+++ b/src/popupmenu.c
@@ -8,7 +8,7 @@
  */
 
 /*
- * popupmnu.c: Popup menu (PUM)
+ * popupmenu.c: Popup menu (PUM)
  */
 #include "vim.h"
 
diff --git a/src/proto.h b/src/proto.h
index 6d3b83d..4c419c6 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -182,7 +182,7 @@
 # include "ops.pro"
 # include "option.pro"
 # include "optionstr.pro"
-# include "popupmnu.pro"
+# include "popupmenu.pro"
 # if defined(FEAT_PROFILE) || defined(FEAT_RELTIME)
 # include "profiler.pro"
 # endif
diff --git a/src/proto/popupmenu.pro b/src/proto/popupmenu.pro
new file mode 100644
index 0000000..c019663
--- /dev/null
+++ b/src/proto/popupmenu.pro
@@ -0,0 +1,18 @@
+/* popupmnu.c */
+void pum_display(pumitem_T *array, int size, int selected);
+void pum_call_update_screen(void);
+int pum_under_menu(int row, int col);
+void pum_redraw(void);
+void pum_undisplay(void);
+void pum_clear(void);
+int pum_visible(void);
+void pum_may_redraw(void);
+int pum_get_height(void);
+void pum_set_event_info(dict_T *dict);
+int split_message(char_u *mesg, pumitem_T **array);
+void ui_remove_balloon(void);
+void ui_post_balloon(char_u *mesg, list_T *list);
+void ui_may_remove_balloon(void);
+void pum_show_popupmenu(vimmenu_T *menu);
+void pum_make_popup(char_u *path_name, int use_mouse_pos);
+/* vim: set ft=c : */
diff --git a/src/proto/popupmnu.pro b/src/proto/popupmnu.pro
index c019663..f5b6c0c 100644
--- a/src/proto/popupmnu.pro
+++ b/src/proto/popupmnu.pro
@@ -1,4 +1,4 @@
-/* popupmnu.c */
+/* popupmenu.c */
 void pum_display(pumitem_T *array, int size, int selected);
 void pum_call_update_screen(void);
 int pum_under_menu(int row, int col);
diff --git a/src/uninstal.c b/src/uninstall.c
similarity index 98%
rename from src/uninstal.c
rename to src/uninstall.c
index 7b7e3ef..94d3957 100644
--- a/src/uninstal.c
+++ b/src/uninstall.c
@@ -8,7 +8,7 @@
  */
 
 /*
- * uninstal.c:	Minimalistic uninstall program for Vim on MS-Windows
+ * uninstall.c:	Minimalistic uninstall program for Vim on MS-Windows
  *		Removes:
  *		- the "Edit with Vim" popup menu entry
  *		- the Vim "Open With..." popup menu entry
@@ -17,7 +17,7 @@
  *		- the Vim entry in the Start Menu
  */
 
-/* Include common code for dosinst.c and uninstal.c. */
+/* Include common code for dosinst.c and uninstall.c. */
 #include "dosinst.h"
 
 /*
diff --git a/src/version.c b/src/version.c
index fa78a08..fa4e956 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2082,
+/**/
     2081,
 /**/
     2080,
