diff --git a/src/eval.c b/src/eval.c
index 56a26b1..f66d296 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -7460,7 +7460,7 @@
 # ifdef UNIX
 		vim_snprintf((char *)buf, NUMBUFLEN,
 			    "process %ld %s", (long)job->jv_pid, status);
-# elif defined(WIN32)
+# elif defined(MSWIN)
 		vim_snprintf((char *)buf, NUMBUFLEN,
 			    "process %ld %s",
 			    (long)job->jv_proc_info.dwProcessId,
@@ -9956,7 +9956,7 @@
 
 #if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) || defined(PROTO)
 
-#ifdef WIN3264
+#ifdef MSWIN
 /*
  * Functions for ":8" filename modifier: get 8.3 version of a filename.
  */
@@ -10191,7 +10191,7 @@
 
     return OK;
 }
-#endif /* WIN3264 */
+#endif // MSWIN
 
 /*
  * Adjust a filename, according to a string of modifiers.
@@ -10215,7 +10215,7 @@
     char_u	dirname[MAXPATHL];
     int		c;
     int		has_fullname = 0;
-#ifdef WIN3264
+#ifdef MSWIN
     char_u	*fname_start = *fnamep;
     int		has_shortname = 0;
 #endif
@@ -10270,7 +10270,7 @@
 		return -1;
 	}
 
-#ifdef WIN3264
+#ifdef MSWIN
 # if _WIN32_WINNT >= 0x0500
 	if (vim_strchr(*fnamep, '~') != NULL)
 	{
@@ -10313,7 +10313,7 @@
 	*usedlen += 2;
 	if (c == '8')
 	{
-#ifdef WIN3264
+#ifdef MSWIN
 	    has_shortname = 1; /* Postpone this. */
 #endif
 	    continue;
@@ -10406,12 +10406,12 @@
     if (src[*usedlen] == ':' && src[*usedlen + 1] == '8')
     {
 	*usedlen += 2;
-#ifdef WIN3264
+#ifdef MSWIN
 	has_shortname = 1;
 #endif
     }
 
-#ifdef WIN3264
+#ifdef MSWIN
     /*
      * Handle ":8" after we have done 'heads' and before we do 'tails'.
      */
@@ -10455,7 +10455,7 @@
 	    *fnamelen = l;
 	}
     }
-#endif /* WIN3264 */
+#endif // MSWIN
 
     /* ":t" - tail, just the basename */
     if (src[*usedlen] == ':' && src[*usedlen + 1] == 't')
