diff --git a/src/eval.c b/src/eval.c
index 0c723ec..30b94e1 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -13492,9 +13492,6 @@
 #ifdef FEAT_GUI_PHOTON
 	"gui_photon",
 #endif
-#ifdef FEAT_GUI_W16
-	"gui_win16",
-#endif
 #ifdef FEAT_GUI_W32
 	"gui_win32",
 #endif
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 89f84ed..fa26824 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -93,11 +93,7 @@
     ex_func_T   cmd_func;	/* function for this command */
     long_u	cmd_argt;	/* flags declared above */
     int		cmd_addr_type;	/* flag for address type */
-}
-# if defined(FEAT_GUI_W16)
-_far
-# endif
-cmdnames[] =
+} cmdnames[] =
 #else
 # define EX(a, b, c, d, e)  a
 enum CMD_index
diff --git a/src/feature.h b/src/feature.h
index d7679e0..ab0ec5a 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -554,7 +554,7 @@
 /* #define NO_BUILTIN_TCAPS */
 #endif
 
-#if !defined(NO_BUILTIN_TCAPS) && !defined(FEAT_GUI_W16)
+#if !defined(NO_BUILTIN_TCAPS)
 # ifdef FEAT_BIG
 #  define ALL_BUILTIN_TCAPS
 # else
@@ -1179,7 +1179,7 @@
 # if defined(MSDOS) || (defined(WIN3264) && !defined(FEAT_GUI_W32))
 #  define MCH_CURSOR_SHAPE
 # endif
-# if defined(FEAT_GUI_W32) || defined(FEAT_GUI_W16) || defined(FEAT_GUI_MOTIF) \
+# if defined(FEAT_GUI_W32) || defined(FEAT_GUI_MOTIF) \
 	|| defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) \
 	|| defined(FEAT_GUI_PHOTON)
 #  define FEAT_MOUSESHAPE
diff --git a/src/gui.h b/src/gui.h
index b2fdc6d..d026664 100644
--- a/src/gui.h
+++ b/src/gui.h
@@ -148,13 +148,8 @@
 #define TEAR_LEN		(9)	/* length of above string */
 
 /* for the toolbar */
-#ifdef FEAT_GUI_W16
-# define TOOLBAR_BUTTON_HEIGHT	15
-# define TOOLBAR_BUTTON_WIDTH	16
-#else
-# define TOOLBAR_BUTTON_HEIGHT	18
-# define TOOLBAR_BUTTON_WIDTH	18
-#endif
+#define TOOLBAR_BUTTON_HEIGHT	18
+#define TOOLBAR_BUTTON_WIDTH	18
 #define TOOLBAR_BORDER_HEIGHT	12  /* room above+below buttons for MSWindows */
 
 #ifdef FEAT_GUI_MSWIN
diff --git a/src/menu.c b/src/menu.c
index 4211f91..b6f8ce4 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -102,7 +102,7 @@
     int		i;
 #if defined(FEAT_GUI) && !defined(FEAT_GUI_GTK)
     int		old_menu_height;
-# if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32) && !defined(FEAT_GUI_W16)
+# if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32)
     int		old_toolbar_height;
 # endif
 #endif
@@ -274,7 +274,7 @@
     }
 #if defined(FEAT_GUI) && !(defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON))
     old_menu_height = gui.menu_height;
-# if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32) && !defined(FEAT_GUI_W16)
+# if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32)
     old_toolbar_height = gui.toolbar_height;
 # endif
 #endif
@@ -395,7 +395,7 @@
     /* If the menubar height changed, resize the window */
     if (gui.in_use
 	    && (gui.menu_height != old_menu_height
-# if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32) && !defined(FEAT_GUI_W16)
+# if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32)
 		|| gui.toolbar_height != old_toolbar_height
 # endif
 	    ))
diff --git a/src/misc1.c b/src/misc1.c
index 6f96f2f..cb45a72 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -9734,7 +9734,7 @@
 static int expand_backtick(garray_T *gap, char_u *pat, int flags);
 # endif
 
-# if defined(MSDOS) || defined(FEAT_GUI_W16) || defined(WIN3264)
+# if defined(MSDOS) || defined(WIN3264)
 /*
  * File name expansion code for MS-DOS, Win16 and Win32.  It's here because
  * it's shared between these systems.
@@ -10078,7 +10078,7 @@
 {
     return dos_expandpath(gap, path, 0, flags, FALSE);
 }
-# endif /* MSDOS || FEAT_GUI_W16 || WIN3264 */
+# endif /* MSDOS || WIN3264 */
 
 #if (defined(UNIX) && !defined(VMS)) || defined(USE_UNIXFILENAME) \
 	|| defined(PROTO)
diff --git a/src/option.c b/src/option.c
index 6645cb2..8daba63 100644
--- a/src/option.c
+++ b/src/option.c
@@ -488,11 +488,7 @@
  * The options with a NULL variable are 'hidden': a set command for them is
  * ignored and they are not printed.
  */
-static struct vimoption
-#ifdef FEAT_GUI_W16
-	_far
-#endif
-	options[] =
+static struct vimoption options[] =
 {
     {"aleph",	    "al",   P_NUM|P_VI_DEF|P_CURSWANT,
 #ifdef FEAT_RIGHTLEFT
diff --git a/src/proto.h b/src/proto.h
index a7b7838..843d422 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -211,9 +211,6 @@
 extern char_u *vimpty_getenv(const char_u *string);	/* from pty.c */
 #   endif
 #  endif
-#  ifdef FEAT_GUI_W16
-#   include "gui_w16.pro"
-#  endif
 #  ifdef FEAT_GUI_W32
 #   include "gui_w32.pro"
 #  endif
diff --git a/src/structs.h b/src/structs.h
index 814b3f7..cba28fc 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -2720,10 +2720,6 @@
 #ifdef FEAT_BEVAL_TIP
     BalloonEval *tip;		    /* tooltip for this menu item */
 #endif
-#ifdef FEAT_GUI_W16
-    UINT	id;		    /* Id of menu item */
-    HMENU	submenu_id;	    /* If this is submenu, add children here */
-#endif
 #ifdef FEAT_GUI_W32
     UINT	id;		    /* Id of menu item */
     HMENU	submenu_id;	    /* If this is submenu, add children here */
diff --git a/src/term.c b/src/term.c
index 6a6ab78..b38a436 100644
--- a/src/term.c
+++ b/src/term.c
@@ -2479,11 +2479,7 @@
 #ifdef DOS16
 # define OUT_SIZE	255		/* only have 640K total... */
 #else
-# ifdef FEAT_GUI_W16
-#  define OUT_SIZE	1023		/* Save precious 1K near data */
-# else
-#  define OUT_SIZE	2047
-# endif
+# define OUT_SIZE	2047
 #endif
 	    /* Add one to allow mch_write() in os_win32.c to append a NUL */
 static char_u		out_buf[OUT_SIZE + 1];
diff --git a/src/version.c b/src/version.c
index 19680dd..84d0f94 100644
--- a/src/version.c
+++ b/src/version.c
@@ -748,6 +748,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1375,
+/**/
     1374,
 /**/
     1373,
diff --git a/src/vim.h b/src/vim.h
index 97155d2..7a7a758 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -126,7 +126,6 @@
     || defined(FEAT_GUI_ATHENA) \
     || defined(FEAT_GUI_MAC) \
     || defined(FEAT_GUI_W32) \
-    || defined(FEAT_GUI_W16) \
     || defined(FEAT_GUI_PHOTON)
 # define FEAT_GUI_ENABLED  /* also defined with NO_X11_INCLUDES */
 # if !defined(FEAT_GUI) && !defined(NO_X11_INCLUDES)
@@ -147,7 +146,7 @@
 # define _CRT_NONSTDC_NO_DEPRECATE
 #endif
 
-#if defined(FEAT_GUI_W32) || defined(FEAT_GUI_W16)
+#if defined(FEAT_GUI_W32)
 # define FEAT_GUI_MSWIN
 #endif
 #if defined(WIN32) || defined(_WIN64)
@@ -868,11 +867,7 @@
 
 #ifdef FEAT_SYN_HL
 # define SST_MIN_ENTRIES 150	/* minimal size for state stack array */
-# ifdef FEAT_GUI_W16
-#  define SST_MAX_ENTRIES 500	/* (only up to 64K blocks) */
-# else
-#  define SST_MAX_ENTRIES 1000	/* maximal size for state stack array */
-# endif
+# define SST_MAX_ENTRIES 1000	/* maximal size for state stack array */
 # define SST_FIX_STATES	 7	/* size of sst_stack[]. */
 # define SST_DIST	 16	/* normal distance between entries */
 # define SST_INVALID	(synstate_T *)-1	/* invalid syn_state pointer */
