diff --git a/src/misc1.c b/src/misc1.c
index 1d95790..75f4ab1 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -14,7 +14,7 @@
 #include "vim.h"
 #include "version.h"
 
-#if defined(FEAT_CMDL_COMPL) && defined(WIN3264)
+#if defined(FEAT_CMDL_COMPL) && defined(MSWIN)
 # include <lm.h>
 #endif
 
@@ -3852,7 +3852,7 @@
     var = mch_getenv((char_u *)"HOME");
 #endif
 
-#ifdef WIN3264
+#ifdef MSWIN
     /*
      * Typically, $HOME is not defined on Windows, unless the user has
      * specifically defined it for Vim's sake.  However, on Windows NT
@@ -4318,7 +4318,7 @@
 
     if (p != NULL)
     {
-#if defined(WIN3264)
+#if defined(MSWIN)
 	if (enc_utf8)
 	{
 	    int	    len;
@@ -4362,7 +4362,7 @@
 	    else
 		p = mch_getenv((char_u *)"VIM");
 
-#if defined(WIN3264)
+#if defined(MSWIN)
 	    if (enc_utf8)
 	    {
 		int	len;
@@ -4688,7 +4688,7 @@
 	    add_user((char_u *)pw->pw_name, TRUE);
 	endpwent();
     }
-# elif defined(WIN3264)
+# elif defined(MSWIN)
     {
 	DWORD		nusers = 0, ntotal = 0, i;
 	PUSER_INFO_0	uinfo;
@@ -4820,7 +4820,7 @@
 #else
     homedir_env_orig = homedir_env = mch_getenv((char_u *)"HOME");
 #endif
-#ifdef WIN3264
+#ifdef MSWIN
     if (homedir_env == NULL)
 	homedir_env_orig = homedir_env = mch_getenv((char_u *)"USERPROFILE");
 #endif
@@ -5619,7 +5619,7 @@
 static int expand_backtick(garray_T *gap, char_u *pat, int flags);
 # endif
 
-# if defined(WIN3264)
+# if defined(MSWIN)
 /*
  * File name expansion code for MS-DOS, Win16 and Win32.  It's here because
  * it's shared between these systems.
@@ -5898,7 +5898,7 @@
 {
     return dos_expandpath(gap, path, 0, flags, FALSE);
 }
-# endif /* WIN3264 */
+# endif // MSWIN
 
 #if (defined(UNIX) && !defined(VMS)) || defined(USE_UNIXFILENAME) \
 	|| defined(PROTO)
@@ -6646,7 +6646,7 @@
 {
     char_u *p;
 
-#ifdef WIN3264
+#ifdef MSWIN
     p = gettail(p_sh);
     p = vim_strnsave(p, (int)(skiptowhite(p) - p));
 #else
