diff --git a/src/usercmd.c b/src/usercmd.c
index 48f84b1..41f8e04 100644
--- a/src/usercmd.c
+++ b/src/usercmd.c
@@ -983,29 +983,32 @@
     if (*p == '{' && ends_excmd2(eap->arg, skipwhite(p + 1))
 						       && eap->getline != NULL)
     {
-	garray_T	ga;
-	char_u	*line = NULL;
+	garray_T    ga;
+	char_u	    *line = NULL;
 
 	ga_init2(&ga, sizeof(char_u *), 10);
 	if (ga_add_string(&ga, p) == FAIL)
 	    return retp;
 
-	// Read lines between '{' and '}'.  Does not support nesting or
-	// here-doc constructs.
-	for (;;)
-	{
-	    vim_free(line);
-	    if ((line = eap->getline(':', eap->cookie,
-				       0, GETLINE_CONCAT_CONTBAR)) == NULL)
+	// If the argument ends in "}" it must have been concatenated already
+	// for ISN_EXEC.
+	if (p[STRLEN(p) - 1] != '}')
+	    // Read lines between '{' and '}'.  Does not support nesting or
+	    // here-doc constructs.
+	    for (;;)
 	    {
-		emsg(_(e_missing_rcurly));
-		break;
+		vim_free(line);
+		if ((line = eap->getline(':', eap->cookie,
+					   0, GETLINE_CONCAT_CONTBAR)) == NULL)
+		{
+		    emsg(_(e_missing_rcurly));
+		    break;
+		}
+		if (ga_add_string(&ga, line) == FAIL)
+		    break;
+		if (*skipwhite(line) == '}')
+		    break;
 	    }
-	    if (ga_add_string(&ga, line) == FAIL)
-		break;
-	    if (*skipwhite(line) == '}')
-		break;
-	}
 	vim_free(line);
 	retp = *tofree = ga_concat_strings(&ga, "\n");
 	ga_clear_strings(&ga);
