diff --git a/src/Make_bc5.mak b/src/Make_bc5.mak
index a5ee13b..9760d8f 100644
--- a/src/Make_bc5.mak
+++ b/src/Make_bc5.mak
@@ -61,10 +61,6 @@
 #		of Ruby will cause a compile error on these systems.
 #   RUBY_VER_LONG  same, but in format with dot. (1.6)
 #   DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (no)
-# MBYTE		no or yes: set to yes for multi-byte support (yes)
-#		NOTE: multi-byte support is broken in the Borland libraries,
-#		not everything will work properly!  Esp. handling multi-byte
-#		file names.
 # IME		no or yes: set to yes for multi-byte IME support (yes)
 #   DYNAMIC_IME no or yes: set to yes to load imm32.dll dynamically (yes)
 # GETTEXT	no or yes: set to yes for multi-language support (yes)
@@ -104,11 +100,6 @@
 GUI = yes
 !endif
 
-### MBYTE: yes for multibyte support, no to disable it.
-!if ("$(MBYTE)"=="")
-MBYTE = yes
-!endif
-
 ### IME: yes for multibyte support, no to disable it.
 !if ("$(IME)"=="")
 IME = yes
@@ -216,7 +207,6 @@
 	("$(RUBY)"=="") && \
 	("$(ICONV)"!="yes") && \
 	("$(IME)"!="yes") && \
-	("$(MBYTE)"!="yes") && \
 	("$(XPM)"=="")
 FASTCALL = yes
 !endif
@@ -397,9 +387,6 @@
 DEFINES = $(DEFINES) -DFEAT_OLE
 !endif
 #
-!if ("$(MBYTE)"=="yes")
-MBDEFINES = $(MBDEFINES) -DFEAT_MBYTE
-!endif
 !if ("$(IME)"=="yes")
 MBDEFINES = $(MBDEFINES) -DFEAT_MBYTE_IME
 !if ("$(DYNAMIC_IME)" == "yes")
@@ -687,9 +674,6 @@
 !if ("$(FASTCALL)"=="yes")
 MSG = $(MSG) FASTCALL
 !endif
-!if ("$(MBYTE)"=="yes")
-MSG = $(MSG) MBYTE
-!endif
 !if ("$(IME)"=="yes")
 MSG = $(MSG) IME
 ! if "$(DYNAMIC_IME)" == "yes"
diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak
index 11ce0fc..759e185 100644
--- a/src/Make_cyg_ming.mak
+++ b/src/Make_cyg_ming.mak
@@ -65,9 +65,6 @@
 ICONV=yes
 GETTEXT=yes
 
-# Set to yes to include multibyte support.
-MBYTE=yes
-
 # Set to yes to include IME support.
 IME=yes
 DYNAMIC_IME=yes
@@ -911,10 +908,6 @@
 USE_STDCPLUS = yes
 endif
 
-ifeq (yes, $(MBYTE))
-DEFINES += -DFEAT_MBYTE
-endif
-
 ifeq (yes, $(IME))
 DEFINES += -DFEAT_MBYTE_IME
 ifeq (yes, $(DYNAMIC_IME))
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index baf0b7d..0a92530 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -26,15 +26,13 @@
 #	GUI interface: GUI=yes (default is no)
 #
 #	GUI with DirectWrite (DirectX): DIRECTX=yes
-#	  (default is yes if GUI=yes, requires GUI=yes and MBYTE=yes)
+#	  (default is yes if GUI=yes, requires GUI=yes)
 #
 #	Color emoji support: COLOR_EMOJI=yes
 #	  (default is yes if DIRECTX=yes, requires WinSDK 8.1 or later.)
 #
 #	OLE interface: OLE=yes (usually with GUI=yes)
 #
-#	Multibyte support: MBYTE=yes (default is yes for NORMAL, BIG, HUGE)
-#
 #	IME support: IME=yes	(requires GUI=yes)
 #	  DYNAMIC_IME=[yes or no]  (to load the imm32.dll dynamically, default
 #	  is yes)
@@ -786,11 +784,6 @@
 !if "$(GIME)" == "yes"
 CFLAGS = $(CFLAGS) -DGLOBAL_IME
 OBJ = $(OBJ) $(OUTDIR)\dimm_i.obj $(OUTDIR)\glbl_ime.obj
-MBYTE = yes
-!endif
-
-!if "$(MBYTE)" == "yes"
-CFLAGS = $(CFLAGS) -DFEAT_MBYTE
 !endif
 
 !if "$(GUI)" == "yes"
diff --git a/src/Makefile b/src/Makefile
index e00c573..0ea1503 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -493,11 +493,7 @@
 #CONF_OPT_TERMINAL = --disable-terminal
 
 # MULTIBYTE - To edit multi-byte characters.
-# Uncomment this when you want to edit a multibyte language.
-# It's automatically enabled with normal features, GTK or IME support.
-# Note: Compile on a machine where setlocale() actually works, otherwise the
-# configure tests may fail.
-#CONF_OPT_MULTIBYTE = --enable-multibyte
+# This is now always enabled.
 
 # When building with at least "big" features, right-left, Arabic and Farsi
 # features are enabled.  Use this to disable them.
diff --git a/src/auto/configure b/src/auto/configure
index e9f66ba..4629b12 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -7959,7 +7959,7 @@
 if test "${enable_multibyte+set}" = set; then :
   enableval=$enable_multibyte;
 else
-  enable_multibyte="no"
+  enable_multibyte="yes"
 fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_multibyte" >&5
@@ -7967,6 +7967,9 @@
 if test "$enable_multibyte" = "yes"; then
   $as_echo "#define FEAT_MBYTE 1" >>confdefs.h
 
+else
+  as_fn_error $? "The multi-byte feature can no longer be disabled. If you have
+		a problem with this, discuss on the Vim mailing list." "$LINENO" 5
 fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-rightleft argument" >&5
@@ -14813,28 +14816,13 @@
     if test "$features" = "tiny"; then
             OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'`
       OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'`
-      if test "$enable_multibyte" = "yes"; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, we need CoreServices" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, we need CoreServices" >&5
 $as_echo "yes, we need CoreServices" >&6; }
-        LIBS="$LIBS -framework CoreServices"
-      else
-                { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-        OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_mac_conv.c++'`
-        OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_mac_conv.o++'`
-        CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's+-DMACOS_X_DARWIN++'`
-      fi
+      LIBS="$LIBS -framework CoreServices"
     else
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, we need AppKit" >&5
 $as_echo "yes, we need AppKit" >&6; }
       LIBS="$LIBS -framework AppKit"
-      if test "$features" = "small" -a "$enable_multibyte" = "no"; then
-                                { $as_echo "$as_me:${as_lineno-$LINENO}: +multi_byte will be set in favor of +clipboard" >&5
-$as_echo "$as_me: +multi_byte will be set in favor of +clipboard" >&6;}
-        enable_multibyte=yes
-        $as_echo "#define FEAT_MBYTE 1" >>confdefs.h
-
-      fi
     fi
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
diff --git a/src/configure.ac b/src/configure.ac
index 700cd3e..39237b9 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -2138,10 +2138,13 @@
 AC_MSG_CHECKING(--enable-multibyte argument)
 AC_ARG_ENABLE(multibyte,
 	[  --enable-multibyte      Include multibyte editing support.], ,
-	[enable_multibyte="no"])
+	[enable_multibyte="yes"])
 AC_MSG_RESULT($enable_multibyte)
 if test "$enable_multibyte" = "yes"; then
   AC_DEFINE(FEAT_MBYTE)
+else
+  AC_MSG_ERROR([The multi-byte feature can no longer be disabled. If you have
+		a problem with this, discuss on the Vim mailing list.])
 fi
 
 dnl Right-to-Left language support for Vim will be included with big features,
@@ -4416,27 +4419,11 @@
       dnl Since no FEAT_CLIPBOARD, no longer need for os_macosx.m.
       OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'`
       OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'`
-      if test "$enable_multibyte" = "yes"; then
-        AC_MSG_RESULT([yes, we need CoreServices])
-        LIBS="$LIBS -framework CoreServices"
-      else
-        dnl Since no FEAT_MBYTE, no longer need for os_mac_conv.c.
-        AC_MSG_RESULT([no])
-        OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_mac_conv.c++'`
-        OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_mac_conv.o++'`
-        CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's+-DMACOS_X_DARWIN++'`
-      fi
+      AC_MSG_RESULT([yes, we need CoreServices])
+      LIBS="$LIBS -framework CoreServices"
     else
       AC_MSG_RESULT([yes, we need AppKit])
       LIBS="$LIBS -framework AppKit"
-      if test "$features" = "small" -a "$enable_multibyte" = "no"; then
-        dnl Since FEAT_CLIPBOARD is to be defined in vim.h for FEAT_SMALL, define
-        dnl FEAT_MBYTE in order not to compromise the interoperability of the
-        dnl clipboard.
-        AC_MSG_NOTICE([+multi_byte will be set in favor of +clipboard])
-        enable_multibyte=yes
-        AC_DEFINE(FEAT_MBYTE)
-      fi
     fi
   else
     AC_MSG_RESULT([no])
diff --git a/src/feature.h b/src/feature.h
index a2bb217..c2e1dd4 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -282,7 +282,7 @@
 
 /*
  * +arabic		Arabic keymap and shaping support.
- *			Requires FEAT_RIGHTLEFT and FEAT_MBYTE.
+ *			Requires FEAT_RIGHTLEFT
  *
  * Disabled for EBCDIC as it requires multibyte.
  */
@@ -597,16 +597,15 @@
 #endif
 
 /*
- * +multi_byte		Generic multi-byte character handling.  Doesn't work
- *			with 16 bit ints.  Required for GTK+ 2.
- *
- * Disabled for EBCDIC:
- * Multibyte support doesn't work on z/OS Unix currently.
+ * +multi_byte		Generic multi-byte character handling.
+ *			Now always enabled.
  */
-#if (defined(FEAT_NORMAL) || defined(FEAT_GUI_GTK) || defined(FEAT_ARABIC)) \
-	&& !defined(FEAT_MBYTE) && VIM_SIZEOF_INT >= 4 && !defined(EBCDIC)
+#if !defined(FEAT_MBYTE)
 # define FEAT_MBYTE
 #endif
+#if VIM_SIZEOF_INT < 4 && !defined(PROTO)
+	Error: Vim only works with 32 bit int or larger
+#endif
 
 /* Define this if you want to use 16 bit Unicode only, reduces memory used for
  * the screen structures. */
@@ -621,18 +620,8 @@
 /* #define FEAT_MBYTE_IME */
 # endif
 
-/* Input methods are only useful with +multi_byte. */
-#if (defined(FEAT_MBYTE_IME) || defined(FEAT_XIM)) && !defined(FEAT_MBYTE)
-# define FEAT_MBYTE
-#endif
-
-#if defined(FEAT_MBYTE) && VIM_SIZEOF_INT < 4 && !defined(PROTO)
-	Error: Can only handle multi-byte feature with 32 bit int or larger
-#endif
-
 /* Use iconv() when it's available. */
-#if defined(FEAT_MBYTE) && ((defined(HAVE_ICONV_H) && defined(HAVE_ICONV)) \
-		|| defined(DYNAMIC_ICONV))
+#if (defined(HAVE_ICONV_H) && defined(HAVE_ICONV)) || defined(DYNAMIC_ICONV)
 # define USE_ICONV
 #endif
 
@@ -669,7 +658,7 @@
  * +xfontset		X fontset support.  For outputting wide characters.
  */
 #ifndef FEAT_XFONTSET
-# if defined(FEAT_MBYTE) && defined(HAVE_X11) && !defined(FEAT_GUI_GTK)
+# if defined(HAVE_X11) && !defined(FEAT_GUI_GTK)
 #  define FEAT_XFONTSET
 # else
 /* #  define FEAT_XFONTSET */
@@ -1277,10 +1266,9 @@
 
 /*
  * +terminal		":terminal" command.  Runs a terminal in a window.
- *			requires +channel and +multibyte
+ *			requires +channel
  */
-#if defined(FEAT_TERMINAL) && \
-	!(defined(FEAT_JOB_CHANNEL) && defined(FEAT_MBYTE))
+#if defined(FEAT_TERMINAL) && !defined(FEAT_JOB_CHANNEL)
 # undef FEAT_TERMINAL
 #endif
 #if defined(FEAT_TERMINAL) && !defined(CURSOR_SHAPE)
diff --git a/src/version.c b/src/version.c
index 092077f..a967fea 100644
--- a/src/version.c
+++ b/src/version.c
@@ -796,6 +796,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    733,
+/**/
     732,
 /**/
     731,
