diff --git a/src/misc2.c b/src/misc2.c
index d323fe5..e513c1b 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -1427,7 +1427,7 @@
     length = (unsigned)STRLEN(string) + 3;  /* two quotes and a trailing NUL */
     for (p = string; *p != NUL; MB_PTR_ADV(p))
     {
-# ifdef WIN32
+# ifdef MSWIN
 	if (!p_ssl)
 	{
 	    if (*p == '"')
@@ -1458,7 +1458,7 @@
 	d = escaped_string;
 
 	/* add opening quote */
-# ifdef WIN32
+# ifdef MSWIN
 	if (!p_ssl)
 	    *d++ = '"';
 	else
@@ -1467,7 +1467,7 @@
 
 	for (p = string; *p != NUL; )
 	{
-# ifdef WIN32
+# ifdef MSWIN
 	    if (!p_ssl)
 	    {
 		if (*p == '"')
@@ -1510,7 +1510,7 @@
 	}
 
 	/* add terminating quote and finish with a NUL */
-# ifdef WIN32
+# ifdef MSWIN
 	if (!p_ssl)
 	    *d++ = '"';
 	else
@@ -2169,7 +2169,7 @@
     }
 }
 
-#if (defined(UNIX) && !defined(USE_SYSTEM)) || defined(WIN3264) \
+#if (defined(UNIX) && !defined(USE_SYSTEM)) || defined(MSWIN) \
 	|| defined(PROTO)
 /*
  * Append the text in "gap" below the cursor line and clear "gap".
@@ -4185,7 +4185,7 @@
     perm = mch_getperm(fname);
 #endif
     if (
-# ifdef WIN3264
+# ifdef MSWIN
 	    mch_writable(fname) &&
 # else
 # if defined(UNIX) || defined(VMS)
@@ -4437,7 +4437,7 @@
     for (i = 0; i < MAX_REPEAT_PARSE; ++i)
     {
 	// For Win32 mch_breakcheck() does not check for input, do it here.
-# if defined(WIN32) && defined(FEAT_JOB_CHANNEL)
+# if defined(MSWIN) && defined(FEAT_JOB_CHANNEL)
 	channel_handle_events(FALSE);
 # endif
 
