diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index e8e38aa..895912f 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3176,6 +3176,9 @@
     int		vcol;
     int		empty = (curbuf->b_ml.ml_flags & ML_EMPTY);
 
+    if (not_in_vim9(eap) == FAIL)
+	return;
+
     // the ! flag toggles autoindent
     if (eap->forceit)
 	curbuf->b_p_ai = !curbuf->b_p_ai;
@@ -3317,6 +3320,9 @@
 {
     linenr_T	lnum;
 
+    if (not_in_vim9(eap) == FAIL)
+	return;
+
     if (eap->line2 >= eap->line1
 	    && u_save(eap->line1 - 1, eap->line2 + 1) == FAIL)
 	return;
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 987e92d..fe65410 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -5686,6 +5686,8 @@
     static void
 ex_exit(exarg_T *eap)
 {
+    if (not_in_vim9(eap) == FAIL)
+	return;
 #ifdef FEAT_CMDWIN
     if (cmdwin_type != 0)
     {
diff --git a/src/proto/vim9script.pro b/src/proto/vim9script.pro
index 6a32abd..f8b12ee 100644
--- a/src/proto/vim9script.pro
+++ b/src/proto/vim9script.pro
@@ -1,6 +1,7 @@
 /* vim9script.c */
 int in_vim9script(void);
 void ex_vim9script(exarg_T *eap);
+int not_in_vim9(exarg_T *eap);
 void ex_export(exarg_T *eap);
 void free_imports(int sid);
 void ex_import(exarg_T *eap);
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index ac76e8d..379245f 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -1515,6 +1515,21 @@
   assert_equal([2, 99, 3, 4, 5], l)
 enddef
 
+def Test_no_insert_xit()
+  call CheckDefExecFailure(['x = 1'], 'E1100:')
+  call CheckDefExecFailure(['a = 1'], 'E1100:')
+  call CheckDefExecFailure(['i = 1'], 'E1100:')
+  call CheckDefExecFailure(['c = 1'], 'E1100:')
+
+  CheckScriptFailure(['vim9script', 'x = 1'], 'E1100:')
+  CheckScriptFailure(['vim9script', 'a = 1'], 'E488:')
+  CheckScriptFailure(['vim9script', 'a'], 'E1100:')
+  CheckScriptFailure(['vim9script', 'i = 1'], 'E488:')
+  CheckScriptFailure(['vim9script', 'i'], 'E1100:')
+  CheckScriptFailure(['vim9script', 'c = 1'], 'E488:')
+  CheckScriptFailure(['vim9script', 'c'], 'E1100:')
+enddef
+
 def IfElse(what: number): string
   let res = ''
   if what == 1
diff --git a/src/version.c b/src/version.c
index 78aafb8..710c570 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1308,
+/**/
     1307,
 /**/
     1306,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 1ed3211..cbb9231 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -7409,6 +7409,13 @@
 
 	    // TODO: other commands with an expression argument
 
+	    case CMD_append:
+	    case CMD_change:
+	    case CMD_insert:
+	    case CMD_xit:
+		    not_in_vim9(&ea);
+		    goto erret;
+
 	    case CMD_SIZE:
 		    semsg(_("E476: Invalid command: %s"), ea.cmd);
 		    goto erret;
diff --git a/src/vim9script.c b/src/vim9script.c
index 784283e..7d783ea 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -59,12 +59,29 @@
 }
 
 /*
+ * When in Vim9 script give an error and return FAIL.
+ */
+    int
+not_in_vim9(exarg_T *eap)
+{
+    switch (eap->cmdidx)
+    {
+	case CMD_insert:
+	case CMD_append:
+	case CMD_change:
+	case CMD_xit:
+	    semsg(_("E1100: Missing :let: %s"), eap->cmd);
+	    return FAIL;
+	default: break;
+    }
+    return OK;
+}
+
+/*
  * ":export let Name: type"
  * ":export const Name: type"
  * ":export def Name(..."
  * ":export class Name ..."
- *
- * ":export {Name, ...}"
  */
     void
 ex_export(exarg_T *eap)
