diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index e2ce176..4024d20 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -5638,22 +5638,24 @@
 'messagesopt' 'mopt'	string	(default "hit-enter,history:500")
 			global
 
-	Option settings when outputting messages.  It can consist of the
+	Option settings for outputting messages.  It can consist of the
 	following items.  Items must be separated by a comma.
 
-	hit-enter	Use |hit-enter| prompt when the message is longer than
+	hit-enter	Use a |hit-enter| prompt when the message is longer than
 			'cmdheight' size.
 
-	wait:{n}	Ignored when "hit-enter" is present.  Instead of using
-			|hit-enter| prompt, will simply wait for {n}
-			milliseconds so the user has a chance to read the
-			message, use 0 to disable sleep (but then the user may
-			miss an important message).
-			The maximum value is 10000.
+	wait:{n}	Instead of using a |hit-enter| prompt, simply wait for
+			{n} milliseconds so that the user has a chance to read
+			the message.  The maximum value of {n} is 10000.  Use
+			0 to disable the wait (but then the user may miss an
+			important message).
+			This item is ignored when "hit-enter" is present, but
+			required when "hit-enter" is not present.
 
 	history:{n}	Determines how many entries are remembered in the
 			|:messages| history.  The maximum value is 10000.
 			Setting it to zero clears the message history.
+			This item must always be present.
 
 						*'mkspellmem'* *'msm'*
 'mkspellmem' 'msm'	string	(default "460000,2000,500")
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index c3f917c..2b12f55 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -1,7 +1,7 @@
 " These commands create the option window.
 "
 " Maintainer:	The Vim Project <https://github.com/vim/vim>
-" Last Change:	2024 Jul 12
+" Last Change:	2024 Dec 07
 " Former Maintainer:	Bram Moolenaar <Bram@vim.org>
 
 " If there already is an option window, jump to that one.
@@ -749,7 +749,7 @@
 call <SID>BinOptionG("terse", &terse)
 call <SID>AddOption("shortmess", gettext("list of flags to make messages shorter"))
 call <SID>OptionG("shm", &shm)
-call <SID>AddOption("messagesopt", gettext("Option settings when outputting messages"))
+call <SID>AddOption("messagesopt", gettext("options for outputting messages"))
 call <SID>OptionG("mopt", &mopt)
 call <SID>AddOption("showcmd", gettext("show (partial) command keys in location given by 'showcmdloc'"))
 let &sc = s:old_sc
diff --git a/src/message.c b/src/message.c
index 6b994e5..f0d1806 100644
--- a/src/message.c
+++ b/src/message.c
@@ -1093,7 +1093,7 @@
     int		messages_wait_new = 0;
     int		messages_history_new = 0;
 
-    p = p_meo;
+    p = p_mopt;
     while (*p != NUL)
     {
 	if (STRNCMP(p, MESSAGES_OPT_HIT_ENTER,
diff --git a/src/option.h b/src/option.h
index e747add..a3634a6 100644
--- a/src/option.h
+++ b/src/option.h
@@ -775,7 +775,7 @@
 #ifdef FEAT_MENU
 EXTERN long	p_mis;		// 'menuitems'
 #endif
-EXTERN char_u	*p_meo;		// 'messagesopt'
+EXTERN char_u	*p_mopt;	// 'messagesopt'
 #ifdef FEAT_SPELL
 EXTERN char_u	*p_msm;		// 'mkspellmem'
 #endif
diff --git a/src/optiondefs.h b/src/optiondefs.h
index f42178b..2d01897 100644
--- a/src/optiondefs.h
+++ b/src/optiondefs.h
@@ -1696,7 +1696,7 @@
 			    (char_u *)NULL, PV_NONE, NULL, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"messagesopt","mopt",  P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_COLON|P_NODUP,
-			    (char_u *)&p_meo, PV_NONE, did_set_messagesopt, expand_set_messagesopt,
+			    (char_u *)&p_mopt, PV_NONE, did_set_messagesopt, expand_set_messagesopt,
 			    {(char_u *)"hit-enter,history:500", (char_u *)NULL} SCTX_INIT},
     {"mkspellmem",  "msm",  P_STRING|P_VI_DEF|P_EXPAND|P_SECURE,
 #ifdef FEAT_SPELL
diff --git a/src/optionstr.c b/src/optionstr.c
index 08b2350..9247433 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -3055,11 +3055,11 @@
     int
 expand_set_messagesopt(optexpand_T *args, int *numMatches, char_u ***matches)
 {
-    static char *(p_meo_values[]) = {"hit-enter", "wait:", "history:", NULL};
+    static char *(p_mopt_values[]) = {"hit-enter", "wait:", "history:", NULL};
     return expand_set_opt_string(
 	    args,
-	    p_meo_values,
-	    ARRAY_LENGTH(p_meo_values) - 1,
+	    p_mopt_values,
+	    ARRAY_LENGTH(p_mopt_values) - 1,
 	    numMatches,
 	    matches);
 }
diff --git a/src/testdir/test_messages.vim b/src/testdir/test_messages.vim
index 1b5f809..2dce6c6 100644
--- a/src/testdir/test_messages.vim
+++ b/src/testdir/test_messages.vim
@@ -692,12 +692,12 @@
 
   " Check hit-enter prompt
   call term_sendkeys(buf, ":set messagesopt=hit-enter,history:500\n")
-  call term_sendkeys(buf, ":echo 'foo' | echo 'bar' echo 'baz'\n")
+  call term_sendkeys(buf, ":echo 'foo' | echo 'bar' | echo 'baz'\n")
   call WaitForAssert({-> assert_equal('Press ENTER or type command to continue', term_getline(buf, 6))})
 
   " Check no hit-enter prompt when "wait:" is set
   call term_sendkeys(buf, ":set messagesopt=wait:100,history:500\n")
-  call term_sendkeys(buf, ":echo 'foo' | echo 'bar' echo 'baz'\n")
+  call term_sendkeys(buf, ":echo 'foo' | echo 'bar' | echo 'baz'\n")
   call WaitForAssert({-> assert_equal('                           0,0-1         All', term_getline(buf, 6))})
 
   " clean up
diff --git a/src/version.c b/src/version.c
index 9c29c4e..81ebbae 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    911,
+/**/
     910,
 /**/
     909,
