diff --git a/src/eval.c b/src/eval.c
index c569710..1468070 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1866,9 +1866,9 @@
 }
 
 /*
- * If inside Vim9 script, "arg" points to the end of a line (ignoring comments)
- * and there is a next line, return the next line (skipping blanks) and set
- * "getnext".
+ * If inside Vim9 script, "arg" points to the end of a line (ignoring a #
+ * comment) and there is a next line, return the next line (skipping blanks)
+ * and set "getnext".
  * Otherwise just return "arg" unmodified and set "getnext" to FALSE.
  * "arg" must point somewhere inside a line, not at the start.
  */
@@ -1880,7 +1880,7 @@
 	    && evalarg != NULL
 	    && evalarg->eval_cookie != NULL
 	    && (*arg == NUL || (VIM_ISWHITE(arg[-1])
-					     && (*arg == '"' || *arg == '#'))))
+					     && *arg == '#' && arg[1] != '{')))
     {
 	char_u *p = getline_peek(evalarg->eval_getline, evalarg->eval_cookie);
 
@@ -1927,6 +1927,8 @@
     int	    getnext;
     char_u  *p = skipwhite(arg);
 
+    if (evalarg == NULL)
+	return skipwhite(arg);
     eval_next_non_blank(p, evalarg, &getnext);
     if (getnext)
 	return eval_next_line(evalarg);
@@ -1934,20 +1936,6 @@
 }
 
 /*
- * Call eval_next_non_blank() and get the next line if needed, but not when a
- * double quote follows.  Used inside an expression.
- */
-    char_u *
-skipwhite_and_linebreak_keep_string(char_u *arg, evalarg_T *evalarg)
-{
-    char_u  *p = skipwhite(arg);
-
-    if (*p == '"')
-	return p;
-    return skipwhite_and_linebreak(arg, evalarg);
-}
-
-/*
  * After using "evalarg" filled from "eap" free the memory.
  */
     void
