diff --git a/src/evalfunc.c b/src/evalfunc.c
index 1b54b7e..8839230 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -5989,10 +5989,6 @@
 #ifdef FEAT_GUI
 	else if (STRICMP(name, "gui_running") == 0)
 	    n = (gui.in_use || gui.starting);
-# ifdef FEAT_GUI_W32
-	else if (STRICMP(name, "gui_win32s") == 0)
-	    n = gui_is_win32s();
-# endif
 # ifdef FEAT_BROWSE
 	else if (STRICMP(name, "browse") == 0)
 	    n = gui.in_use;	/* gui_mch_browse() works when GUI is running */
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index d690f39..72d480c 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -1927,11 +1927,7 @@
 #ifdef UNIX
 				    shortname,
 #else
-# ifdef FEAT_GUI_W32
-				    gui_is_win32s(),
-# else
 				    FALSE,
-# endif
 #endif
 				    fname,
 #ifdef VMS
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 773454f..0979d67 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -4533,15 +4533,6 @@
 	    || (os_version.dwPlatformId == VER_PLATFORM_WIN32s));
 }
 
-/*
- * Return TRUE when running under Win32s.
- */
-    int
-gui_is_win32s(void)
-{
-    return (os_version.dwPlatformId == VER_PLATFORM_WIN32s);
-}
-
 #ifdef FEAT_MENU
 /*
  * Figure out how high the menu bar is at the moment.
diff --git a/src/option.c b/src/option.c
index 9f1aaf1..a0665f3 100644
--- a/src/option.c
+++ b/src/option.c
@@ -3294,16 +3294,6 @@
 	}
     }
 
-#ifdef FEAT_GUI_W32
-    /* force 'shortname' for Win32s */
-    if (gui_is_win32s())
-    {
-	opt_idx = findoption((char_u *)"shortname");
-	if (opt_idx >= 0)
-	    options[opt_idx].def_val[VI_DEFAULT] = (char_u *)TRUE;
-    }
-#endif
-
 #ifdef FEAT_SEARCHPATH
     {
 	char_u	*cdpath;
diff --git a/src/os_win32.c b/src/os_win32.c
index 97a8cca..2773953 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -2062,7 +2062,6 @@
     Columns = 80;
 
     /* Look for 'vimrun' */
-    if (!gui_is_win32s())
     {
 	char_u vimrun_location[_MAX_PATH + 4];
 
@@ -4142,7 +4141,7 @@
      * Win32s either as it stops the synchronous spawn workaround working.
      * Don't activate the window to keep focus on Vim.
      */
-    if ((options & SHELL_DOOUT) && !mch_windows95() && !gui_is_win32s())
+    if ((options & SHELL_DOOUT) && !mch_windows95())
 	si.wShowWindow = SW_SHOWMINNOACTIVE;
     else
 	si.wShowWindow = SW_SHOWNORMAL;
diff --git a/src/proto/gui_w32.pro b/src/proto/gui_w32.pro
index 2eccf74..3c99f97 100644
--- a/src/proto/gui_w32.pro
+++ b/src/proto/gui_w32.pro
@@ -62,7 +62,6 @@
 char_u *gui_mch_browsedir(char_u *title, char_u *initdir);
 char_u *gui_mch_browse(int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter);
 int get_cmd_args(char *prog, char *cmdline, char ***argvp, char **tofree);
-int gui_is_win32s(void);
 void gui_mch_set_parent(char *title);
 void gui_mch_prepare(int *argc, char **argv);
 int gui_mch_init(void);
diff --git a/src/version.c b/src/version.c
index 4fbbb82..a799c6d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2253,
+/**/
     2252,
 /**/
     2251,
@@ -5419,8 +5421,6 @@
     MSG_PUTS(_("\nMS-Windows 32-bit GUI version"));
 #   endif
 #  endif
-    if (gui_is_win32s())
-	MSG_PUTS(_(" in Win32s mode"));
 # ifdef FEAT_OLE
     MSG_PUTS(_(" with OLE support"));
 # endif
