diff --git a/src/charset.c b/src/charset.c
index 0c17140..31b03eb 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1459,14 +1459,27 @@
 }
 
 /*
- * skipwhite: skip over ' ' and '\t'.
+ * Skip over ' ' and '\t'.
  */
     char_u *
 skipwhite(char_u *q)
 {
     char_u	*p = q;
 
-    while (VIM_ISWHITE(*p)) // skip to next non-white
+    while (VIM_ISWHITE(*p))
+	++p;
+    return p;
+}
+
+/*
+ * skip over ' ', '\t' and '\n'.
+ */
+    char_u *
+skipwhite_and_nl(char_u *q)
+{
+    char_u	*p = q;
+
+    while (VIM_ISWHITE(*p) || *p == NL)
 	++p;
     return p;
 }
diff --git a/src/eval.c b/src/eval.c
index d9f44b2..bc5eaa4 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2150,7 +2150,7 @@
 skipwhite_and_linebreak(char_u *arg, evalarg_T *evalarg)
 {
     int	    getnext;
-    char_u  *p = skipwhite(arg);
+    char_u  *p = skipwhite_and_nl(arg);
 
     if (evalarg == NULL)
 	return skipwhite(arg);
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index c06a508..5f52401 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2305,7 +2305,7 @@
 	    // versions.
 	    if (*p == '\\' && p[1] == '\n')
 		STRMOVE(p, p + 1);
-	    else if (*p == '\n')
+	    else if (*p == '\n' && (ea.argt & EX_TRLBAR))
 	    {
 		ea.nextcmd = p + 1;
 		*p = NUL;
diff --git a/src/proto/charset.pro b/src/proto/charset.pro
index c71188d..ee5370b 100644
--- a/src/proto/charset.pro
+++ b/src/proto/charset.pro
@@ -36,6 +36,7 @@
 void getvvcol(win_T *wp, pos_T *pos, colnr_T *start, colnr_T *cursor, colnr_T *end);
 void getvcols(win_T *wp, pos_T *pos1, pos_T *pos2, colnr_T *left, colnr_T *right);
 char_u *skipwhite(char_u *q);
+char_u *skipwhite_and_nl(char_u *q);
 int getwhitecols_curline(void);
 int getwhitecols(char_u *p);
 char_u *skipdigits(char_u *q);
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 1f695bc..e374788 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -2549,6 +2549,20 @@
   CheckScriptSuccess(lines)
 enddef
 
+def Test_expr7_dict_in_block()
+  var lines =<< trim END
+      vim9script
+      command MyCommand {
+          echo {
+              k: 0, }
+      }
+      MyCommand
+  END
+  CheckScriptSuccess(lines)
+
+  delcommand MyCommand
+enddef
+
 def Test_expr7_call_2bool()
   var lines =<< trim END
       vim9script
diff --git a/src/version.c b/src/version.c
index 3395864..7029134 100644
--- a/src/version.c
+++ b/src/version.c
@@ -750,6 +750,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3815,
+/**/
     3814,
 /**/
     3813,
