diff --git a/src/globals.h b/src/globals.h
index bc4a3d5..0fd08b6 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1347,6 +1347,9 @@
 EXTERN int	fill_stlnc INIT(= ' ');
 EXTERN int	fill_vert INIT(= ' ');
 EXTERN int	fill_fold INIT(= '-');
+EXTERN int	fill_foldopen INIT(= '-');
+EXTERN int	fill_foldclosed INIT(= '+');
+EXTERN int	fill_foldsep INIT(= '|');
 EXTERN int	fill_diff INIT(= '-');
 EXTERN int	fill_eob INIT(= '~');
 
diff --git a/src/mouse.c b/src/mouse.c
index 10b991b..4bff48e 100644
--- a/src/mouse.c
+++ b/src/mouse.c
@@ -1989,7 +1989,7 @@
 	count |= CURSOR_MOVED;		// Cursor has moved
 
 # ifdef FEAT_FOLDING
-    if (mouse_char == '+')
+    if (mouse_char == fill_foldclosed)
 	count |= MOUSE_FOLD_OPEN;
     else if (mouse_char != ' ')
 	count |= MOUSE_FOLD_CLOSE;
diff --git a/src/screen.c b/src/screen.c
index b6cc9bd..a012c70 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -272,9 +272,9 @@
 	{
 	    if (win_foldinfo.fi_lnum == lnum
 			      && first_level + i >= win_foldinfo.fi_low_level)
-		p[i] = '-';
+		p[i] = fill_foldopen;
 	    else if (first_level == 1)
-		p[i] = '|';
+		p[i] = fill_foldsep;
 	    else if (first_level + i <= 9)
 		p[i] = '0' + first_level + i;
 	    else
@@ -284,7 +284,7 @@
 	}
     }
     if (closed)
-	p[i >= fdc ? i - 1 : i] = '+';
+	p[i >= fdc ? i - 1 : i] = fill_foldclosed;
 }
 #endif // FEAT_FOLDING
 
@@ -4761,12 +4761,15 @@
     };
     static struct charstab filltab[] =
     {
-	{&fill_stl,	"stl"},
-	{&fill_stlnc,	"stlnc"},
-	{&fill_vert,	"vert"},
-	{&fill_fold,	"fold"},
-	{&fill_diff,	"diff"},
-	{&fill_eob,	"eob"},
+	{&fill_stl,		"stl"},
+	{&fill_stlnc,		"stlnc"},
+	{&fill_vert,		"vert"},
+	{&fill_fold,		"fold"},
+	{&fill_foldopen,	"foldopen"},
+	{&fill_foldclosed,	"foldclose"},
+	{&fill_foldsep,		"foldsep"},
+	{&fill_diff,		"diff"},
+	{&fill_eob,		"eob"},
     };
     static lcs_chars_T lcs_chars;
     struct charstab lcstab[] =
@@ -4821,6 +4824,9 @@
 	    else
 	    {
 		fill_diff = '-';
+		fill_foldopen = '-';
+		fill_foldclosed = '+';
+		fill_foldsep = '|';
 		fill_eob = '~';
 	    }
 	}
diff --git a/src/testdir/test_display.vim b/src/testdir/test_display.vim
index 5bf9e5e..4616da5 100644
--- a/src/testdir/test_display.vim
+++ b/src/testdir/test_display.vim
@@ -279,4 +279,58 @@
   close
 endfunc
 
+" Test for 'foldopen', 'foldclose' and 'foldsep' in 'fillchars'
+func Test_fold_fillchars()
+  new
+  set fdc=2 foldenable foldmethod=manual
+  call setline(1, ['one', 'two', 'three', 'four', 'five'])
+  2,4fold
+  " First check for the default setting for a closed fold
+  let lines = ScreenLines([1, 3], 8)
+  let expected = [
+        \ '  one   ',
+        \ '+ +--  3',
+        \ '  five  '
+        \ ]
+  call assert_equal(expected, lines)
+  normal 2Gzo
+  " check the characters for an open fold
+  let lines = ScreenLines([1, 5], 8)
+  let expected = [
+        \ '  one   ',
+        \ '- two   ',
+        \ '| three ',
+        \ '| four  ',
+        \ '  five  '
+        \ ]
+  call assert_equal(expected, lines)
+
+  " change the setting
+  set fillchars=vert:\|,fold:-,eob:~,foldopen:[,foldclose:],foldsep:-
+
+  " check the characters for an open fold
+  let lines = ScreenLines([1, 5], 8)
+  let expected = [
+        \ '  one   ',
+        \ '[ two   ',
+        \ '- three ',
+        \ '- four  ',
+        \ '  five  '
+        \ ]
+  call assert_equal(expected, lines)
+
+  " check the characters for a closed fold
+  normal 2Gzc
+  let lines = ScreenLines([1, 3], 8)
+  let expected = [
+        \ '  one   ',
+        \ '] +--  3',
+        \ '  five  '
+        \ ]
+  call assert_equal(expected, lines)
+
+  %bw!
+  set fillchars& fdc& foldmethod& foldenable&
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index 265cf31..26f80cc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2524,
+/**/
     2523,
 /**/
     2522,
