diff --git a/src/memline.c b/src/memline.c
index c62ea5f..66be0f3 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -1807,7 +1807,7 @@
 #else
 		names[0] = vim_strsave((char_u *)"*.sw?");
 #endif
-#if defined(UNIX) || defined(WIN3264)
+#if defined(UNIX) || defined(MSWIN)
 		/* For Unix names starting with a dot are special.  MS-Windows
 		 * supports this too, on some file systems. */
 		names[1] = vim_strsave((char_u *)".*.sw?");
@@ -1834,7 +1834,7 @@
 #else
 		names[0] = concat_fnames(dir_name, (char_u *)"*.sw?", TRUE);
 #endif
-#if defined(UNIX) || defined(WIN3264)
+#if defined(UNIX) || defined(MSWIN)
 		/* For Unix names starting with a dot are special.  MS-Windows
 		 * supports this too, on some file systems. */
 		names[1] = concat_fnames(dir_name, (char_u *)".*.sw?", TRUE);
@@ -1851,7 +1851,7 @@
 	    }
 	    else
 	    {
-#if defined(UNIX) || defined(WIN3264)
+#if defined(UNIX) || defined(MSWIN)
 		int	len = (int)STRLEN(dir_name);
 
 		p = dir_name + len;
@@ -1999,7 +1999,7 @@
     return file_count;
 }
 
-#if defined(UNIX) || defined(WIN3264) || defined(PROTO)
+#if defined(UNIX) || defined(MSWIN) || defined(PROTO)
 /*
  * Need _very_ long file names.
  * Append the full path to name with path separators made into percent
@@ -2207,7 +2207,7 @@
      */
     char_u	*p;
     int		i;
-# ifndef WIN3264
+# ifndef MSWIN
     int	    shortname = curbuf->b_shortname;
 
     curbuf->b_shortname = FALSE;
@@ -2252,7 +2252,7 @@
     else
 	++num_names;
 
-# ifndef WIN3264
+# ifndef MSWIN
     /*
      * Also try with 'shortname' set, in case the file is on a DOS filesystem.
      */
@@ -2279,7 +2279,7 @@
 # endif
 
 end:
-# ifndef WIN3264
+# ifndef MSWIN
     curbuf->b_shortname = shortname;
 # endif
 
@@ -4253,7 +4253,7 @@
     char_u	fname_buf[MAXPATHL];
 #endif
 
-#if defined(UNIX) || defined(WIN3264)  /* Need _very_ long file names */
+#if defined(UNIX) || defined(MSWIN)  // Need _very_ long file names
     int		len = (int)STRLEN(dir_name);
 
     s = dir_name + len;
@@ -4343,7 +4343,7 @@
     else
 	retval = concat_fnames(dname, tail, TRUE);
 
-#ifdef WIN3264
+#ifdef MSWIN
     if (retval != NULL)
 	for (t = gettail(retval); *t != NUL; MB_PTR_ADV(t))
 	    if (*t == ':')
@@ -4474,7 +4474,7 @@
 # define CREATE_DUMMY_FILE
     FILE	*dummyfd = NULL;
 
-# ifdef WIN3264
+# ifdef MSWIN
     if (buf_fname != NULL && !mch_isFullName(buf_fname)
 				       && vim_strchr(gettail(buf_fname), ':'))
     {
@@ -4927,7 +4927,7 @@
 	mch_remove(buf_fname);
     }
 #endif
-#ifdef WIN3264
+#ifdef MSWIN
     if (buf_fname != buf->b_fname)
 	vim_free(buf_fname);
 #endif
