diff --git a/src/errors.h b/src/errors.h
index 9a2c394..e302ecc 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -2761,7 +2761,7 @@
 #endif
 EXTERN char e_yank_register_changed_while_using_it[]
 	INIT(= N_("E1064: Yank register changed while using it"));
-EXTERN char e_command_cannot_be_shortened[]
+EXTERN char e_command_cannot_be_shortened_str[]
 	INIT(= N_("E1065: Command cannot be shortened: %s"));
 #ifdef FEAT_EVAL
 EXTERN char e_cannot_declare_a_register_str[]
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 40e5075..cf4bfdc 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -408,7 +408,7 @@
 	EX_BANG|EX_TRLBAR|EX_WORD1|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_NONE),
 EXCMD(CMD_continue,	"continue",	ex_continue,
-	EX_TRLBAR|EX_SBOXOK|EX_CMDWIN|EX_LOCK_OK,
+	EX_TRLBAR|EX_SBOXOK|EX_CMDWIN|EX_LOCK_OK|EX_WHOLE,
 	ADDR_NONE),
 EXCMD(CMD_confirm,	"confirm",	ex_wrongmodifier,
 	EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_CMDWIN|EX_LOCK_OK,
@@ -567,7 +567,7 @@
 	EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_NONE),
 EXCMD(CMD_enddef,	"enddef",	ex_endfunction,
-	EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
+	EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK|EX_WHOLE,
 	ADDR_NONE),
 EXCMD(CMD_endenum,	"endenum",	ex_ni,
 	EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
@@ -603,7 +603,7 @@
 	EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_FILE1|EX_ARGOPT|EX_DFLALL|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_LINES),
 EXCMD(CMD_export,	"export",	ex_export,
-	EX_EXTRA|EX_NOTRLCOM|EX_EXPR_ARG|EX_CMDWIN|EX_LOCK_OK,
+	EX_EXTRA|EX_NOTRLCOM|EX_EXPR_ARG|EX_CMDWIN|EX_LOCK_OK|EX_WHOLE,
 	ADDR_NONE),
 EXCMD(CMD_exusage,	"exusage",	ex_exusage,
 	EX_TRLBAR,
@@ -732,7 +732,7 @@
 	EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_OTHER),
 EXCMD(CMD_import,	"import",	ex_import,
-	EX_EXTRA|EX_NOTRLCOM|EX_CMDWIN|EX_LOCK_OK,
+	EX_EXTRA|EX_NOTRLCOM|EX_CMDWIN|EX_LOCK_OK|EX_WHOLE,
 	ADDR_NONE),
 EXCMD(CMD_inoremap,	"inoremap",	ex_map,
 	EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN|EX_LOCK_OK,
@@ -1281,7 +1281,7 @@
 	EX_TRLBAR|EX_RANGE|EX_WHOLEFOLD|EX_DFLALL|EX_BANG|EX_WORD1|EX_CMDWIN|EX_LOCK_OK|EX_MODIFY,
 	ADDR_LINES),
 EXCMD(CMD_return,	"return",	ex_return,
-	EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN|EX_LOCK_OK,
+	EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN|EX_LOCK_OK|EX_WHOLE,
 	ADDR_NONE),
 EXCMD(CMD_rewind,	"rewind",	ex_rewind,
 	EX_EXTRA|EX_BANG|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 6b2bdd4..4066f8d 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3753,16 +3753,14 @@
 
 	// :Print and :mode are not supported in Vim9 script.
 	// Some commands cannot be shortened in Vim9 script.
-	// ":continue" needs at least ":cont", since ":con" looks weird.
 	if (vim9 && eap->cmdidx != CMD_SIZE)
 	{
 	    if (eap->cmdidx == CMD_mode || eap->cmdidx == CMD_Print)
 		eap->cmdidx = CMD_SIZE;
-	    else if (((cmdnames[eap->cmdidx].cmd_argt & EX_WHOLE)
+	    else if ((cmdnames[eap->cmdidx].cmd_argt & EX_WHOLE)
 			  && len < (int)STRLEN(cmdnames[eap->cmdidx].cmd_name))
-		      || (eap->cmdidx == CMD_continue && len < 4))
 	    {
-		semsg(_(e_command_cannot_be_shortened), eap->cmd);
+		semsg(_(e_command_cannot_be_shortened_str), eap->cmd);
 		eap->cmdidx = CMD_SIZE;
 	    }
 	}
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index a503d11..fb4b79e 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -3381,6 +3381,10 @@
        'cat',
        'catc',
        'con',
+       'cont',
+       'conti',
+       'contin',
+       'continu',
        'el',
        'els',
        'elsei',
@@ -3391,8 +3395,16 @@
        'endw',
        'endt',
        'endtr',
+       'exp',
+       'expo',
+       'expor',
        'fina',
        'finall',
+       'imp',
+       'impo',
+       'impor',
+       'retu',
+       'retur',
        'th',
        'thr',
        'thro',
@@ -3403,6 +3415,19 @@
   for name in names
     v9.CheckDefAndScriptFailure([name .. ' '], 'E1065:')
   endfor
+
+  var lines =<< trim END
+      vim9script
+      def SomeFunc()
+      endd
+  END
+  v9.CheckScriptFailure(lines, 'E1065:')
+  lines =<< trim END
+      vim9script
+      def SomeFunc()
+      endde
+  END
+  v9.CheckScriptFailure(lines, 'E1065:')
 enddef
 
 def Test_unset_any_variable()
diff --git a/src/userfunc.c b/src/userfunc.c
index 03b310d..63bb314 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -821,6 +821,7 @@
 	{
 	    int	    c;
 	    char_u  *end;
+	    char_u  *cmd;
 
 	    // skip ':' and blanks
 	    for (p = theline; VIM_ISWHITE(*p) || *p == ':'; ++p)
@@ -828,12 +829,16 @@
 
 	    // Check for "endfunction", "enddef" or "}".
 	    // When a ":" follows it must be a dict key; "enddef: value,"
+	    cmd = p;
 	    if (nesting_inline[nesting]
 		    ? *p == '}'
 		    : (checkforcmd(&p, nesting_def[nesting]
 						? "enddef" : "endfunction", 4)
 			&& *p != ':'))
 	    {
+		if (!nesting_inline[nesting] && nesting_def[nesting]
+								&& p < cmd + 6)
+		    semsg(_(e_command_cannot_be_shortened_str), "enddef");
 		if (nesting-- == 0)
 		{
 		    char_u *nextcmd = NULL;
diff --git a/src/version.c b/src/version.c
index 357ed40..238e627 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4514,
+/**/
     4513,
 /**/
     4512,
