diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index e664c96..f48ccb8 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.1.  Last change: 2019 Feb 03
+*options.txt*	For Vim version 8.1.  Last change: 2019 Feb 16
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -695,8 +695,6 @@
 'ambiwidth' 'ambw'	string (default: "single")
 			global
 			{not in Vi}
-			{only available when compiled with the |+multi_byte|
-			feature}
 	Only effective when 'encoding' is "utf-8" or another Unicode encoding.
 	Tells Vim what to do with characters with East Asian Width Class
 	Ambiguous (such as Euro, Registered Sign, Copyright Sign, Greek
@@ -1277,8 +1275,6 @@
 'bomb'			boolean	(default off)
 			local to buffer
 			{not in Vi}
-			{only available when compiled with the |+multi_byte|
-			feature}
 	When writing a file and the following conditions are met, a BOM (Byte
 	Order Mark) is prepended to the file:
 	- this option is on
@@ -1440,8 +1436,6 @@
 'casemap' 'cmp'		string	(default: "internal,keepascii")
 			global
 			{not in Vi}
-			{only available when compiled with the |+multi_byte|
-			feature}
 	Specifies details about changing the case of letters.  It may contain
 	these words, separated by a comma:
 	internal	Use internal case mapping functions, the current
@@ -1497,8 +1491,7 @@
 				*'charconvert'* *'ccv'* *E202* *E214* *E513*
 'charconvert' 'ccv'	string (default "")
 			global
-			{only available when compiled with the |+multi_byte|
-			and |+eval| features}
+			{only available when compiled with the |+eval| feature}
 			{not in Vi}
 	An expression that is used for character encoding conversion.  It is
 	evaluated when a file that is to be read or has been written has a
@@ -1657,7 +1650,6 @@
 			You probably want to add this only temporarily,
 			possibly use BufEnter autocommands.
 			Only supported for GTK version 2 and later.
-			Only available with the |+multi_byte| feature.
 
 						*clipboard-exclude*
 	exclude:{pattern}
@@ -2552,8 +2544,6 @@
 'delcombine' 'deco'	boolean (default off)
 			global
 			{not in Vi}
-			{only available when compiled with the |+multi_byte|
-			feature}
 	If editing Unicode and this option is set, backspace and Normal mode
 	"x" delete each combining character on its own.  When it is off (the
 	default) the character along with its combining characters are
@@ -2804,16 +2794,12 @@
 'emoji' 'emo'	boolean (default: on)
 			global
 			{not in Vi}
-			{only available when compiled with the |+multi_byte|
-			feature}
 	When on all Unicode emoji characters are considered to be full width.
 
 
 					*'encoding'* *'enc'* *E543*
 'encoding' 'enc'	string (default: "latin1" or value from $LANG)
 			global
-			{only available when compiled with the |+multi_byte|
-			feature}
 			{not in Vi}
 	Sets the character encoding used inside Vim.  It applies to text in
 	the buffers, registers, Strings in expressions, text stored in the
@@ -3016,8 +3002,6 @@
 				*'fileencoding'* *'fenc'* *E213*
 'fileencoding' 'fenc'	string (default: "")
 			local to buffer
-			{only available when compiled with the |+multi_byte|
-			feature}
 			{not in Vi}
 	Sets the character encoding for the file of this buffer.
 
@@ -3073,8 +3057,6 @@
 				    "ucs-bom,utf-8,default,latin1" when
 				    'encoding' is set to a Unicode value)
 			global
-			{only available when compiled with the |+multi_byte|
-			feature}
 			{not in Vi}
 	This is a list of character encodings considered when starting to edit
 	an existing file.  When a file is read, Vim tries to use the first
@@ -4318,8 +4300,6 @@
 'imactivatefunc' 'imaf'	string (default "")
 			global
 			{not in Vi}
-			{only available when compiled with the |+multi_byte|
-			feature}
 	This option specifies a function that will be called to
 	activate or deactivate the Input Method.
 	It is not used in the GUI.
@@ -4371,8 +4351,6 @@
 'imcmdline' 'imc'	boolean (default off)
 			global
 			{not in Vi}
-			{only available when compiled with the |+multi_byte|
-			feature}
 	When set the Input Method is always on when starting to edit a command
 	line, unless entering a search pattern (see 'imsearch' for that).
 	Setting this option is useful when your input method allows entering
@@ -4383,8 +4361,6 @@
 'imdisable' 'imd'	boolean (default off, on for some systems (SGI))
 			global
 			{not in Vi}
-			{only available when compiled with the |+multi_byte|
-			feature}
 	When set the Input Method is never used.  This is useful to disable
 	the IM when it doesn't work properly.
 	Currently this option is on by default for SGI/IRIX machines.  This
@@ -4437,8 +4413,6 @@
 'imstatusfunc' 'imsf'	string (default "")
 			global
 			{not in Vi}
-			{only available when compiled with the |+multi_byte|
-			feature}
 	This option specifies a function that is called to obtain the status
 	of Input Method.  It must return a positive number when IME is active.
 	It is not used in the GUI.
@@ -5183,8 +5157,6 @@
 					*'makeencoding'* *'menc'*
 'makeencoding' 'menc'	string	(default "")
 			global or local to buffer |global-local|
-			{only available when compiled with the |+multi_byte|
-			feature}
 			{not in Vi}
 	Encoding used for reading the output of external commands.  When empty,
 	encoding is not converted.
@@ -5251,8 +5223,6 @@
 'maxcombine' 'mco'	number (default 2)
 			global
 			{not in Vi}
-			{only available when compiled with the |+multi_byte|
-			feature}
 	The maximum number of combining characters supported for displaying.
 	Only used when 'encoding' is "utf-8".
 	The default is OK for most languages.  Hebrew may require 4.
@@ -6020,8 +5990,8 @@
 'printmbcharset' 'pmbcs'  string (default "")
 			global
 			{not in Vi}
-			{only available when compiled with the |+printer|,
-			|+postscript| and |+multi_byte| features}
+			{only available when compiled with the |+printer|
+			and |+postscript| features}
 	The CJK character set to be used for CJK output from |:hardcopy|.
 	See |pmbcs-option|.
 
@@ -6029,8 +5999,8 @@
 'printmbfont' 'pmbfn'	string (default "")
 			global
 			{not in Vi}
-			{only available when compiled with the |+printer|,
-			|+postscript| and |+multi_byte| features}
+			{only available when compiled with the |+printer|
+			and |+postscript| features}
 	List of font names to be used for CJK output from |:hardcopy|.
 	See |pmbfn-option|.
 
@@ -7997,8 +7967,6 @@
 'termencoding' 'tenc'	string	(default ""; with GTK+ GUI: "utf-8"; with
 						    Macintosh GUI: "macroman")
 			global
-			{only available when compiled with the |+multi_byte|
-			feature}
 			{not in Vi}
 	Encoding used for the terminal.  This specifies what character
 	encoding the keyboard produces and the display will understand.  For
