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,
