diff --git a/src/screen.c b/src/screen.c
index 5816381..5610d8a 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -3345,14 +3345,18 @@
     }
 #endif
 
-    /* find start of trailing whitespace */
-    if (wp->w_p_list && lcs_trail)
+    if (wp->w_p_list)
     {
-	trailcol = (colnr_T)STRLEN(ptr);
-	while (trailcol > (colnr_T)0 && vim_iswhite(ptr[trailcol - 1]))
-	    --trailcol;
-	trailcol += (colnr_T) (ptr - line);
-	extra_check = TRUE;
+	if (lcs_space || lcs_trail)
+	    extra_check = TRUE;
+	/* find start of trailing whitespace */
+	if (lcs_trail)
+	{
+	    trailcol = (colnr_T)STRLEN(ptr);
+	    while (trailcol > (colnr_T)0 && vim_iswhite(ptr[trailcol - 1]))
+		--trailcol;
+	    trailcol += (colnr_T) (ptr - line);
+	}
     }
 
     /*
@@ -4354,35 +4358,6 @@
 #endif
 	    ++ptr;
 
-	    /* 'list': change char 160 to lcs_nbsp and space to lcs_space. */
-	    if (wp->w_p_list
-		    && (((c == 160
-#ifdef FEAT_MBYTE
-			  || (mb_utf8 && (mb_c == 160 || mb_c == 0x202f))
-#endif
-			 ) && lcs_nbsp)
-			|| (c == ' ' && lcs_space && ptr - line <= trailcol)))
-	    {
-		c = (c == ' ') ? lcs_space : lcs_nbsp;
-		if (area_attr == 0 && search_attr == 0)
-		{
-		    n_attr = 1;
-		    extra_attr = hl_attr(HLF_8);
-		    saved_attr2 = char_attr; /* save current attr */
-		}
-#ifdef FEAT_MBYTE
-		mb_c = c;
-		if (enc_utf8 && (*mb_char2len)(c) > 1)
-		{
-		    mb_utf8 = TRUE;
-		    u8cc[0] = 0;
-		    c = 0xc0;
-		}
-		else
-		    mb_utf8 = FALSE;
-#endif
-	    }
-
 	    if (extra_check)
 	    {
 #ifdef FEAT_SPELL
@@ -4567,6 +4542,36 @@
 		}
 #endif
 
+		/* 'list': change char 160 to lcs_nbsp and space to lcs_space.
+		 */
+		if (wp->w_p_list
+			&& (((c == 160
+#ifdef FEAT_MBYTE
+			      || (mb_utf8 && (mb_c == 160 || mb_c == 0x202f))
+#endif
+			     ) && lcs_nbsp)
+			|| (c == ' ' && lcs_space && ptr - line <= trailcol)))
+		{
+		    c = (c == ' ') ? lcs_space : lcs_nbsp;
+		    if (area_attr == 0 && search_attr == 0)
+		    {
+			n_attr = 1;
+			extra_attr = hl_attr(HLF_8);
+			saved_attr2 = char_attr; /* save current attr */
+		    }
+#ifdef FEAT_MBYTE
+		    mb_c = c;
+		    if (enc_utf8 && (*mb_char2len)(c) > 1)
+		    {
+			mb_utf8 = TRUE;
+			u8cc[0] = 0;
+			c = 0xc0;
+		    }
+		    else
+			mb_utf8 = FALSE;
+#endif
+		}
+
 		if (trailcol != MAXCOL && ptr > line + trailcol && c == ' ')
 		{
 		    c = lcs_trail;
diff --git a/src/testdir/test_listlbr.in b/src/testdir/test_listlbr.in
index 52cbc10..d51b2f9 100644
--- a/src/testdir/test_listlbr.in
+++ b/src/testdir/test_listlbr.in
@@ -23,20 +23,24 @@
 :	$put =g:line
 :	wincmd p
 :endfu
+:"
 :let g:test="Test 1: set linebreak"
 :redraw!
 :let line=ScreenChar(winwidth(0))
 :call DoRecordScreen()
+:"
 :let g:test="Test 2: set linebreak + set list"
 :set linebreak list listchars=
 :redraw!
 :let line=ScreenChar(winwidth(0))
 :call DoRecordScreen()
+:"
 :let g:test ="Test 3: set linebreak nolist"
 :set nolist linebreak
 :redraw!
 :let line=ScreenChar(winwidth(0))
 :call DoRecordScreen()
+:"
 :let g:test ="Test 4: set linebreak with tab and 1 line as long as screen: should break!"
 :set nolist linebreak ts=8
 :let line="1\t".repeat('a', winwidth(0)-2)
@@ -50,6 +54,7 @@
 :$put =line
 :$
 :norm! zt
+:"
 :let g:test ="Test 5: set linebreak with conceal and set list and tab displayed by different char (line may not be truncated)"
 :set cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab
 :syn match ConcealVar contained /_/ conceal
@@ -57,6 +62,7 @@
 :let line=ScreenChar(winwidth(0))
 :call DoRecordScreen()
 :set cpo&vim linebreak
+:"
 :let g:test ="Test 6: set linebreak with visual block mode"
 :let line="REMOVE: this not"
 :$put =g:test
@@ -66,20 +72,24 @@
 :1/^REMOVE:
 0jf x:$put
 :set cpo&vim linebreak
+:"
 :let g:test ="Test 7: set linebreak with visual block mode and v_b_A"
 :$put =g:test
 Golong line: 40afoobar aTARGET at end
 :exe "norm! $3B\<C-v>eAx\<Esc>"
 :set cpo&vim linebreak sbr=
+:"
 :let g:test ="Test 8: set linebreak with visual char mode and changing block"
 :$put =g:test
 Go1111-1111-1111-11-1111-1111-11110f-lv3lc2222bgj.
+:"
 :let g:test ="Test 9: using redo after block visual mode"
 :$put =g:test
 Go
 aaa
 aaa
 a2k2j~e.
+:"
 :let g:test ="Test 10: using normal commands after block-visual"
 :$put =g:test
 :set linebreak
@@ -87,10 +97,22 @@
 abcd{ef
 ghijklm
 no}pqrs2k0f{c%
+:"
 :let g:test ="Test 11: using block replace mode after wrapping"
 :$put =g:test
 :set linebreak wrap
 Go150aayypk147|jr0
+:"
+:let g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$"
+:set list listchars=space:_,trail:-,tab:>-,eol:$
+:$put =g:test
+:let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
+:$put =line
+:$
+:norm! zt
+:redraw!
+:let line=ScreenChar(winwidth(0))
+:call DoRecordScreen()
 :%w! test.out
 :qa!
 ENDTEST
diff --git a/src/testdir/test_listlbr.ok b/src/testdir/test_listlbr.ok
index ff30b46..b32a549 100644
--- a/src/testdir/test_listlbr.ok
+++ b/src/testdir/test_listlbr.ok
@@ -52,3 +52,11 @@
 Test 11: using block replace mode after wrapping
 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0aaa
 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0aaa
+Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$
+a aaaaaaaaaaaaaaaaaaaaaa	a 
+
+Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$
+a_                  
+aaaaaaaaaaaaaaaaaaaa
+aa>-----a-$         
+~                   
diff --git a/src/version.c b/src/version.c
index e034d45..8289826 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    977,
+/**/
     976,
 /**/
     975,
