diff --git a/src/eval.c b/src/eval.c
index 9a2fdf6..c569710 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3362,7 +3362,7 @@
 	 *
 	 * Get the (first) variable from inside the [].
 	 */
-	*arg = skipwhite(*arg + 1);
+	*arg = skipwhite_and_linebreak(*arg + 1, evalarg);
 	if (**arg == ':')
 	    empty1 = TRUE;
 	else if (eval1(arg, &var1, evalarg) == FAIL)	// recursive!
@@ -3377,10 +3377,11 @@
 	/*
 	 * Get the second variable from inside the [:].
 	 */
+	*arg = skipwhite_and_linebreak(*arg, evalarg);
 	if (**arg == ':')
 	{
 	    range = TRUE;
-	    *arg = skipwhite(*arg + 1);
+	    *arg = skipwhite_and_linebreak(*arg + 1, evalarg);
 	    if (**arg == ']')
 		empty2 = TRUE;
 	    else if (eval1(arg, &var2, evalarg) == FAIL)	// recursive!
@@ -3400,6 +3401,7 @@
 	}
 
 	// Check for the ']'.
+	*arg = skipwhite_and_linebreak(*arg, evalarg);
 	if (**arg != ']')
 	{
 	    if (verbose)
@@ -5043,6 +5045,21 @@
 				      && (evalarg->eval_flags & EVAL_EVALUATE);
     int		ret = OK;
     dict_T	*selfdict = NULL;
+    int		check_white = TRUE;
+
+    // When at the end of the line and ".name" follows in the next line then
+    // consume the line break.  Only when rettv is a dict.
+    if (rettv->v_type == VAR_DICT)
+    {
+	int	getnext;
+	char_u	*p = eval_next_non_blank(*arg, evalarg, &getnext);
+
+	if (getnext && *p == '.' && ASCII_ISALPHA(p[1]))
+	{
+	    *arg = eval_next_line(evalarg);
+	    check_white = FALSE;
+	}
+    }
 
     // "." is ".name" lookup when we found a dict or when evaluating and
     // scriptversion is at least 2, where string concatenation is "..".
@@ -5054,7 +5071,7 @@
 			    && current_sctx.sc_version >= 2)))
 		    || (**arg == '(' && (!evaluate || rettv->v_type == VAR_FUNC
 					    || rettv->v_type == VAR_PARTIAL)))
-		&& !VIM_ISWHITE(*(*arg - 1)))
+		&& (!check_white || !VIM_ISWHITE(*(*arg - 1))))
 	    || (**arg == '-' && (*arg)[1] == '>')))
     {
 	if (**arg == '(')
