diff --git a/Makefile b/Makefile
index 710e59f..8e54a32 100644
--- a/Makefile
+++ b/Makefile
@@ -131,6 +131,9 @@
 #
 # MS-Windows:
 # - Run make on Unix to update the ".mo" files.
+# - Get libintl-8.dll and libiconv-2.dll. E.g. from
+#   https://mlocati.github.io/gettext-iconv-windows/ .
+#   Put them in the top directory, "make dosrt" uses them.
 # - > make dossrc
 #   > make dosrt
 #   Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
@@ -493,7 +496,8 @@
 		cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
 	      fi \
 	    done
-	cp libintl.dll dist/vim/$(VIMRTDIR)/
+	cp libintl-8.dll dist/vim/$(VIMRTDIR)/
+	cp libiconv-2.dll dist/vim/$(VIMRTDIR)/
 
 
 # Used before uploading.  Don't delete the AAPDIR/sign files!
diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi
index 7c8d4ba..0bc9d4c 100644
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -6,13 +6,19 @@
 # because uninstall deletes most files in $0.
 
 # Location of gvim_ole.exe, vimw32.exe, GvimExt/*, etc.
-!define VIMSRC "..\src"
+!ifndef VIMSRC
+  !define VIMSRC "..\src"
+!endif
 
 # Location of runtime files
-!define VIMRT ".."
+!ifndef VIMRT
+  !define VIMRT ".."
+!endif
 
 # Location of extra tools: diff.exe
-!define VIMTOOLS ..\..
+!ifndef VIMTOOLS
+  !define VIMTOOLS ..\..
+!endif
 
 # Comment the next line if you don't have UPX.
 # Get it at http://upx.sourceforge.net
@@ -32,9 +38,10 @@
 Name "Vim ${VER_MAJOR}.${VER_MINOR}"
 OutFile gvim${VER_MAJOR}${VER_MINOR}.exe
 CRCCheck force
-SetCompressor lzma
+SetCompressor /SOLID lzma
 SetDatablockOptimize on
 RequestExecutionLevel highest
+XPStyle on
 
 ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer."
 DirText "Choose a directory to install Vim (should contain 'vim')"
@@ -55,9 +62,6 @@
   !packhdr temp.dat "upx --best --compress-icons=1 temp.dat"
 !endif
 
-SetCompressor /SOLID lzma
-XPStyle on
-
 # This adds '\vim' to the user choice automagically.  The actual value is
 # obtained below with ReadINIStr.
 InstallDir "$PROGRAMFILES\Vim"
@@ -355,7 +359,9 @@
 		File ${VIMRT}\keymap\README.txt
 		File ${VIMRT}\keymap\*.vim
 		SetOutPath $0
-		File ${VIMRT}\libintl.dll
+		File ${VIMRT}\libintl-8.dll
+		File ${VIMRT}\libiconv-2.dll
+		File /nonfatal ${VIMRT}\libwinpthread-1.dll
 	SectionEnd
 !endif
 
diff --git a/src/main.c b/src/main.c
index d7723d2..175bbde 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1580,7 +1580,7 @@
 
 #  ifdef DYNAMIC_GETTEXT
 	/* Initialize the gettext library */
-	dyn_libintl_init(NULL);
+	dyn_libintl_init();
 #  endif
 	/* expand_env() doesn't work yet, because chartab[] is not initialized
 	 * yet, call vim_getenv() directly */
diff --git a/src/os_w32exe.c b/src/os_w32exe.c
index 93a1389..d8fa2bf 100644
--- a/src/os_w32exe.c
+++ b/src/os_w32exe.c
@@ -69,7 +69,7 @@
 
 #ifdef DYNAMIC_GETTEXT
     /* Initialize gettext library */
-    dyn_libintl_init(NULL);
+    dyn_libintl_init();
 #endif
 
 #ifdef VIMDLL
diff --git a/src/os_win32.c b/src/os_win32.c
index 69623f9..c5b23ca 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -463,6 +463,7 @@
 #if defined(DYNAMIC_GETTEXT) || defined(PROTO)
 # ifndef GETTEXT_DLL
 #  define GETTEXT_DLL "libintl.dll"
+#  define GETTEXT_DLL_ALT "libintl-8.dll"
 # endif
 /* Dummy functions */
 static char *null_libintl_gettext(const char *);
@@ -479,7 +480,7 @@
 				       = null_libintl_bind_textdomain_codeset;
 
     int
-dyn_libintl_init(char *libname)
+dyn_libintl_init()
 {
     int i;
     static struct
@@ -498,7 +499,9 @@
     if (hLibintlDLL)
 	return 1;
     /* Load gettext library (libintl.dll) */
-    hLibintlDLL = vimLoadLib(libname != NULL ? libname : GETTEXT_DLL);
+    hLibintlDLL = vimLoadLib(GETTEXT_DLL);
+    if (!hLibintlDLL)
+	hLibintlDLL = vimLoadLib(GETTEXT_DLL_ALT);
     if (!hLibintlDLL)
     {
 	if (p_verbose > 0)
diff --git a/src/proto/os_win32.pro b/src/proto/os_win32.pro
index 5816fc9..e6fce88 100644
--- a/src/proto/os_win32.pro
+++ b/src/proto/os_win32.pro
@@ -1,6 +1,6 @@
 /* os_win32.c */
 HINSTANCE vimLoadLib __ARGS((char *name));
-int dyn_libintl_init __ARGS((char *libname));
+int dyn_libintl_init __ARGS((void));
 void dyn_libintl_end __ARGS((void));
 void PlatformId __ARGS((void));
 int mch_windows95 __ARGS((void));
diff --git a/src/version.c b/src/version.c
index f74281d..efc77c0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1106,
+/**/
     1105,
 /**/
     1104,
