diff --git a/src/evalvars.c b/src/evalvars.c
index 86a66940414c6548d28239e049b256c772ddeaf4..3dc30e92beaf6bf6219b0bfc89723ee0b3b9167c 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -1184,6 +1184,7 @@ list_arg_vars(exarg_T *eap, char_u *arg, int *first)
     char_u	*arg_subsc;
     char_u	*tofree;
     typval_T    tv;
+    int		prev_uncaught_emsg = uncaught_emsg;
 
     while (!ends_excmd2(eap->cmd, arg) && !got_int)
     {
@@ -1193,7 +1194,7 @@ list_arg_vars(exarg_T *eap, char_u *arg, int *first)
 	    if (!VIM_ISWHITE(*arg) && !ends_excmd(*arg))
 	    {
 		emsg_severe = TRUE;
-		if (!error)
+		if (uncaught_emsg == prev_uncaught_emsg)
 		    semsg(_(e_trailing_arg), arg);
 		break;
 	    }
diff --git a/src/testdir/test_let.vim b/src/testdir/test_let.vim
index d001d0578153ededaa09b95f33447ee25a07dc1f..5f8879b7e6b1b8a14625ed14d4bc861a33b8da1b 100644
--- a/src/testdir/test_let.vim
+++ b/src/testdir/test_let.vim
@@ -279,7 +279,7 @@ func Test_let_errors()
   let l = [1, 2, 3]
   call assert_fails('let l[:] = 5', 'E709:')
 
-  call assert_fails('let x:lnum=5', ['E121:', 'E488:'])
+  call assert_fails('let x:lnum=5', ['E121:', 'E121:'])
   call assert_fails('let v:=5', 'E461:')
   call assert_fails('let [a]', 'E474:')
   call assert_fails('let [a, b] = [', 'E697:')
diff --git a/src/version.c b/src/version.c
index e49611216293538c86c19c3f41bfbf5e6036c7ea..71633d7416b7227b6ec49e4314ba9ec6153b13c1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    3342,
 /**/
     3341,
 /**/