diff --git a/src/fold.c b/src/fold.c
index d3635a6..cba1375 100644
--- a/src/fold.c
+++ b/src/fold.c
@@ -1576,16 +1576,23 @@
 		{
 		    /* 5. fold is below line1 and contains line2; need to
 		     * correct nested folds too */
-		    foldMarkAdjustRecurse(&fp->fd_nested, line1 - fp->fd_top,
-				  line2 - fp->fd_top, amount,
-				  amount_after + (fp->fd_top - top));
 		    if (amount == MAXLNUM)
 		    {
+			foldMarkAdjustRecurse(&fp->fd_nested,
+				  line1 - fp->fd_top,
+				  line2 - fp->fd_top,
+				  amount,
+				  amount_after + (fp->fd_top - top));
 			fp->fd_len -= line2 - fp->fd_top + 1;
 			fp->fd_top = line1;
 		    }
 		    else
 		    {
+			foldMarkAdjustRecurse(&fp->fd_nested,
+				  line1 - fp->fd_top,
+				  line2 - fp->fd_top,
+				  amount,
+				  amount_after - amount);
 			fp->fd_len += amount_after - amount;
 			fp->fd_top += amount;
 		    }
diff --git a/src/testdir/test_fold.vim b/src/testdir/test_fold.vim
index 2ac0004..1f835b8 100644
--- a/src/testdir/test_fold.vim
+++ b/src/testdir/test_fold.vim
@@ -1,6 +1,6 @@
 " Test for folding
 
-function! Test_address_fold()
+func! Test_address_fold()
   new
   call setline(1, ['int FuncName() {/*{{{*/', 1, 2, 3, 4, 5, '}/*}}}*/',
 	      \ 'after fold 1', 'after fold 2', 'after fold 3'])
@@ -62,9 +62,9 @@
   call assert_equal(['4', '5', '}/*}}}*/'], getreg(0,1,1))
 
   quit!
-endfunction
+endfunc
 
-function! Test_indent_fold()
+func! Test_indent_fold()
     new
     call setline(1, ['', 'a', '    b', '    c'])
     setl fen fdm=indent
@@ -72,9 +72,9 @@
     norm! >>
     let a=map(range(1,4), 'foldclosed(v:val)')
     call assert_equal([-1,-1,-1,-1], a)
-endfu
+endfunc
 
-function! Test_indent_fold()
+func! Test_indent_fold()
     new
     call setline(1, ['', 'a', '    b', '    c'])
     setl fen fdm=indent
@@ -83,9 +83,9 @@
     let a=map(range(1,4), 'foldclosed(v:val)')
     call assert_equal([-1,-1,-1,-1], a)
     bw!
-endfu
+endfunc
 
-function! Test_indent_fold2()
+func! Test_indent_fold2()
     new
     call setline(1, ['', '{{{', '}}}', '{{{', '}}}'])
     setl fen fdm=marker
@@ -94,4 +94,21 @@
     let a=map(range(1,5), 'foldclosed(v:val)')
     call assert_equal([-1,-1,-1,4,4], a)
     bw!
-endfu
+endfunc
+
+func Test_manual_fold_with_filter()
+  if !executable('cat')
+    return
+  endif
+  new
+  call setline(1, range(1, 20))
+  4,$fold
+  %foldopen
+  10,$fold
+  %foldopen
+  " This filter command should not have an effect
+  1,8! cat
+  call feedkeys('5ggzdzMGdd', 'xt')
+  call assert_equal(['1', '2', '3', '4', '5', '6', '7', '8', '9'], getline(1, '$'))
+  bwipe!
+endfunc
diff --git a/src/version.c b/src/version.c
index a0396d1..19d3322 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    388,
+/**/
     387,
 /**/
     386,
