diff --git a/src/Makefile b/src/Makefile
index 9258956..e55e830 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2103,13 +2103,13 @@
 	test_listchars \
 	test_search_mbyte \
 	test_wordcount \
-	test3 test11 test12 test14 test15 test17 \
+	test3 test11 test14 test15 test17 \
 	test29 test30 test36 test37 test39 \
-	test40 test42 test44 test45 test48 test49 \
+	test42 test44 test48 test49 \
 	test50 test52 test55 test59 \
 	test64 test68 test69 \
-	test70 test72 test73 test77 \
-	test83 test85 test86 test87 test88 \
+	test70 test72 test73 \
+	test85 test86 test87 test88 \
 	test94 test95 test99 test108:
 	cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
 
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 6edca56..4d618c6 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -20,10 +20,8 @@
 	test36.out \
 	test37.out \
 	test39.out \
-	test40.out \
 	test42.out \
 	test44.out \
-	test45.out \
 	test48.out \
 	test55.out \
 	test64.out \
@@ -58,7 +56,6 @@
 
 # Tests that run on most systems, but not on Amiga and DOS/Windows.
 SCRIPTS_MORE2 = \
-	test12.out \
 	test49.out
 
 
@@ -68,7 +65,6 @@
 	test30.out \
 	test59.out \
 	test72.out \
-	test83.out
 
 
 # Tests specifically for MS-Windows.
@@ -79,7 +75,7 @@
 SCRIPTS_GUI =
 
 
-# Tests using runtest.vim.vim.
+# Tests using runtest.vim
 # Keep test_alot*.res as the last one, sort the others.
 NEW_TESTS = test_arabic.res \
 	    test_arglist.res \
@@ -164,6 +160,7 @@
 	    test_startup_utf8.res \
 	    test_stat.res \
 	    test_substitute.res \
+	    test_swap.res \
 	    test_syntax.res \
 	    test_system.res \
 	    test_tab.res \
diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak
index 4a6bd9f..d894001 100644
--- a/src/testdir/Make_amiga.mak
+++ b/src/testdir/Make_amiga.mak
@@ -13,7 +13,6 @@
 # test2		"\\tmp" doesn't work
 # test10	'errorformat' is different
 # test11	"cat" doesn't work properly
-# test12	can't unlink a swap file
 # test52	only for Win32
 # test85	no Lua interface
 # test86, 87	no Python interface
diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak
index 52162bc..6cd8de6 100644
--- a/src/testdir/Make_dos.mak
+++ b/src/testdir/Make_dos.mak
@@ -12,7 +12,6 @@
 # Omitted:
 # test2		"\\tmp" doesn't work.
 # test10	'errorformat' is different
-# test12	can't unlink a swap file
 # test49	fails in various ways
 # test97	\{ and \$ are not escaped characters.
 
diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak
index 1134685..f2bd8b7 100644
--- a/src/testdir/Make_ming.mak
+++ b/src/testdir/Make_ming.mak
@@ -31,7 +31,6 @@
 # Omitted:
 # test2		"\\tmp" doesn't work.
 # test10	'errorformat' is different
-# test12	can't unlink a swap file
 # test97	\{ and \$ are not escaped characters
 
 SCRIPTS = $(SCRIPTS_ALL) $(SCRIPTS_MORE1) $(SCRIPTS_MORE4) $(SCRIPTS_WIN32)
diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms
index b76c230..0397589 100644
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -75,13 +75,13 @@
 
 SCRIPT = test1.out test3.out \
        test14.out test15.out \
-       test29.out test30.out \
-       test36.out test37.out test39.out \
-       test40.out test42.out test44.out test45.out \
-       test48.out test49.out test55.out \
+       test29.out \
+       test30.out test36.out test37.out test39.out \
+       test42.out test44.out test48.out test49.out \
+       test55.out \
        test64.out test68.out test69.out \
        test72.out test77a.out test88.out \
-       test94.out test95.out test99.out test108.out\
+       test94.out test95.out test99.out test108.out \
        test_autocmd_option.out \
        test_breakindent.out \
        test_changelist.out \
@@ -107,7 +107,6 @@
 #
 # test72: bug - Vim hangs at :rename (while rename works well otherwise)
 # test78: bug - Vim dies at :recover Xtest 
-# test83: ?
 # test85: no Lua interface
 # test89: bug - findfile() does not work on VMS (just in the current directory) 
 # test102: Just ODS-5 supports space and special chars in the filename.
@@ -119,7 +118,7 @@
 .ENDIF
 
 .IFDEF WANT_UNIX
-SCRIPT_UNIX = test10.out test12.out test17.out test27.out test49.out test73.out
+SCRIPT_UNIX = test10.out test17.out test27.out test49.out test73.out
 .ENDIF
 
 .IFDEF WANT_WIN
@@ -146,10 +145,6 @@
 SCRIPT_GDIFF = test47.out
 .ENDIF
 
-.IFDEF HAVE_ICONV
-SCRIPT_ICONV = test83.out
-.ENDIF
-
 .IFDEF HAVE_LUA
 SCRIPT_LUA = test85.out
 .ENDIF
@@ -179,7 +174,7 @@
 	-@ if "''F$SEARCH("Xtest.*")'"    .NES. "" then delete/noconfirm/nolog Xtest.*.*
 
 all : clean nolog $(START_WITH) $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_WIN) $(SCRIPT_SPELL) $(SCRIPT_ODS5) $(SCRIPT_GZIP) \
-    $(SCRIPT_GDIFF) $(SCRIPT_MZSCH) $(SCRIPT_ICONV) $(SCRIPT_LUA) $(SCRIPT_PYTHON) nolog 
+    $(SCRIPT_GDIFF) $(SCRIPT_MZSCH) $(SCRIPT_LUA) $(SCRIPT_PYTHON) nolog 
 	-@ write sys$output " "
 	-@ write sys$output "-----------------------------------------------"
 	-@ write sys$output "                All done"
diff --git a/src/testdir/main.aap b/src/testdir/main.aap
index 14afaac..89eae41 100644
--- a/src/testdir/main.aap
+++ b/src/testdir/main.aap
@@ -6,12 +6,12 @@
 
 Scripts = test1.out test2.out test3.out test6.out
 		test11.out
-		test12.out  test13.out test14.out test15.out test17.out
+		test13.out test14.out test15.out test17.out
 		test18.out test21.out
 		test27.out test29.out test30.out
 		test36.out test37.out
-		test39.out test40.out test42.out
-		test44.out test45.out test46.out test47.out
+		test39.out test42.out
+		test44.out test46.out test47.out
 		test48.out test49.out test74.out
 
 ScriptsGUI = test16.out
diff --git a/src/testdir/test12.in b/src/testdir/test12.in
deleted file mode 100644
index 46e9c45..0000000
--- a/src/testdir/test12.in
+++ /dev/null
@@ -1,52 +0,0 @@
-Tests for 'directory' option.
-- ".", in same dir as file
-- "./dir", in directory relative to file
-- "dir", in directory relative to current dir
-
-STARTTEST
-:so small.vim
-:set nocompatible viminfo+=nviminfo
-:set dir=.,~
-:/start of testfile/,/end of testfile/w! Xtest1
-:" do an ls of the current dir to find the swap file (should not be there)
-:if has("unix")
-:  !ls .X*.swp >test.out
-:else
-:  r !ls X*.swp >test.out
-:endif
-:!echo first line >>test.out
-:e Xtest1
-:if has("unix")
-:" Do an ls of the current dir to find the swap file, remove the leading dot
-:" to make the result the same for all systems.
-:  r!ls .X*.swp
-:  s/\.*X/X/
-:  .w >>test.out
-:  undo
-:else
-:  !ls X*.swp >>test.out
-:endif
-:!echo under Xtest1.swp >>test.out
-:!mkdir Xtest2
-:set dir=./Xtest2,.,~
-:e Xtest1
-:!ls X*.swp >>test.out
-:!echo under under >>test.out
-:!ls Xtest2 >>test.out
-:!echo under Xtest1.swp >>test.out
-:!mkdir Xtest.je
-:/start of testfile/,/end of testfile/w! Xtest2/Xtest3
-:set dir=Xtest.je,~
-:e Xtest2/Xtest3
-:swap
-:!ls Xtest2 >>test.out
-:!echo under Xtest3 >>test.out
-:!ls Xtest.je >>test.out
-:!echo under Xtest3.swp >>test.out
-:qa!
-ENDTEST
-
-start of testfile
-line 2 Abcdefghij
-line 3 Abcdefghij
-end of testfile
diff --git a/src/testdir/test12.ok b/src/testdir/test12.ok
deleted file mode 100644
index 605623b..0000000
--- a/src/testdir/test12.ok
+++ /dev/null
@@ -1,10 +0,0 @@
-first line
-Xtest1.swp
-under Xtest1.swp
-under under
-Xtest1.swp
-under Xtest1.swp
-Xtest3
-under Xtest3
-Xtest3.swp
-under Xtest3.swp
diff --git a/src/testdir/test40.in b/src/testdir/test40.in
deleted file mode 100644
index d92a18f..0000000
--- a/src/testdir/test40.in
+++ /dev/null
@@ -1,63 +0,0 @@
-Test for "*Cmd" autocommands
-
-STARTTEST
-:so small.vim
-:/^start/,$w! Xxx		" write lines below to Xxx
-:au BufReadCmd XtestA 0r Xxx|$del
-:e XtestA			" will read text of Xxd instead
-:au BufWriteCmd XtestA call append(line("$"), "write")
-:w				" will append a line to the file
-:r XtestA			" should not read anything
-:				" now we have:
-:				" 1	start of Xxx
-:				" 2		test40
-:				" 3	end of Xxx
-:				" 4	write
-:au FileReadCmd XtestB '[r Xxx
-:2r XtestB			" will read Xxx below line 2 instead
-:				" 1	start of Xxx
-:				" 2		test40
-:				" 3	start of Xxx
-:				" 4		test40
-:				" 5	end of Xxx
-:				" 6	end of Xxx
-:				" 7	write
-:au FileWriteCmd XtestC '[,']copy $
-4GA1
-:4,5w XtestC			" will copy lines 4 and 5 to the end
-:r XtestC			" should not read anything
-:				" 1	start of Xxx
-:				" 2		test40
-:				" 3	start of Xxx
-:				" 4		test401
-:				" 5	end of Xxx
-:				" 6	end of Xxx
-:				" 7	write
-:				" 8		test401
-:				" 9	end of Xxx
-:au FILEAppendCmd XtestD '[,']w! test.out
-:w >>XtestD			" will write all lines to test.out
-:$r XtestD			" should not read anything
-:$w >>test.out			" append "end of Xxx" to test.out
-:au BufReadCmd XtestE 0r test.out|$del
-:sp XtestE			" split window with test.out
-5Goasdf:"
-:au BufWriteCmd XtestE w! test.out
-:wall				" will write other window to test.out
-:				" 1	start of Xxx
-:				" 2		test40
-:				" 3	start of Xxx
-:				" 4		test401
-:				" 5	end of Xxx
-:				" 6	asdf
-:				" 7	end of Xxx
-:				" 8	write
-:				" 9		test401
-:				" 10	end of Xxx
-:				" 11	end of Xxx
-:qa!
-ENDTEST
-
-start of Xxx
-	test40
-end of Xxx
diff --git a/src/testdir/test40.ok b/src/testdir/test40.ok
deleted file mode 100644
index b650139..0000000
--- a/src/testdir/test40.ok
+++ /dev/null
@@ -1,11 +0,0 @@
-start of Xxx
-	test40
-start of Xxx
-	test401
-end of Xxx
-asdf
-end of Xxx
-write
-	test401
-end of Xxx
-end of Xxx
diff --git a/src/testdir/test45.in b/src/testdir/test45.in
deleted file mode 100644
index c6d7c50..0000000
--- a/src/testdir/test45.in
+++ /dev/null
@@ -1,92 +0,0 @@
-Tests for folding. vim: set ft=vim :
-
-STARTTEST
-:so small.vim
-:set belloff=all
-:" We also need the +syntax feature here.
-:if !has("syntax")
-   e! test.ok
-   w! test.out
-   qa!
-:endif
-:" basic test if a fold can be created, opened, moving to the end and closed
-/^1
-zf2j:call append("$", "manual " . getline(foldclosed(".")))
-zo:call append("$", foldclosed("."))
-]z:call append("$", getline("."))
-zc:call append("$", getline(foldclosed(".")))
-:" test folding with markers.
-:set fdm=marker fdl=1 fdc=3
-/^5
-:call append("$", "marker " . foldlevel("."))
-[z:call append("$", foldlevel("."))
-jo{{ r{jj:call append("$", foldlevel("."))
-kYpj:call append("$", foldlevel("."))
-:" test folding with indent
-:set fdm=indent sw=2
-/^2 b
-i  jI    :call append("$", "indent " . foldlevel("."))
-k:call append("$", foldlevel("."))
-:set sw&
-:" test syntax folding
-:set fdm=syntax fdl=0
-:syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
-:syn region Fd1 start="ee" end="ff" fold contained
-:syn region Fd2 start="gg" end="hh" fold contained
-:syn region Fd3 start="commentstart" end="commentend" fold contained
-Gzk:call append("$", "folding " . getline("."))
-k:call append("$", getline("."))
-jAcommentstart  Acommentend:set fdl=1
-3j:call append("$", getline("."))
-:set fdl=0
-zOj:call append("$", getline("."))
-:" test expression folding
-:fun Flvl()
-  let l = getline(v:lnum)
-  if l =~ "bb$"
-    return 2
-  elseif l =~ "gg$"
-    return "s1"
-  elseif l =~ "ii$"
-    return ">2"
-  elseif l =~ "kk$"
-    return "0"
-  endif
-  return "="
-endfun
-:set fdm=expr fde=Flvl()
-/bb$
-:call append("$", "expr " . foldlevel("."))
-/hh$
-:call append("$", foldlevel("."))
-/ii$
-:call append("$", foldlevel("."))
-/kk$
-:call append("$", foldlevel("."))
-:/^last/+1,$w! test.out
-:delfun Flvl
-:new
-iTest fdm=indent and :move bug END
-line2
-	Test fdm=indent START
-	line3
-	line4
-:set fdm=indent
-:1m1
-2jzc:m0
-:%w >> test.out
-:qa!
-ENDTEST
-
-1 aa
-2 bb
-3 cc
-4 dd {{{
-5 ee {{{ }}}
-6 ff }}}
-7 gg
-8 hh
-9 ii
-a jj
-b kk
-last
diff --git a/src/testdir/test45.ok b/src/testdir/test45.ok
deleted file mode 100644
index 0f25e62..0000000
--- a/src/testdir/test45.ok
+++ /dev/null
@@ -1,23 +0,0 @@
-manual 1 aa
--1
-3 cc
-1 aa
-marker 2
-1
-1
-0
-indent 2
-1
-folding 9 ii
-    3 cc
-7 gg
-8 hh
-expr 2
-1
-2
-0
-	Test fdm=indent START
-	line3
-	line4
-Test fdm=indent and :move bug END
-line2
diff --git a/src/testdir/test83.in b/src/testdir/test83.in
deleted file mode 100644
index f24c1b8..0000000
--- a/src/testdir/test83.in
+++ /dev/null
@@ -1,76 +0,0 @@
-Tests for tag search with !_TAG_FILE_ENCODING.
-
-STARTTEST
-:so mbyte.vim
-:set enc=utf8
-:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
-: e! test.ok
-: w! test.out
-: qa!
-:endif
-:
-:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
-:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
-:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
-:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
-:
-ggdG:
-:
-:call setline('.', 'Results of test83')
-:
-:" case1:
-:new
-:set tags=Xtags1
-:let v:errmsg = ''
-:tag abcdefghijklmnopqrs
-:if v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
-: close
-: put ='case1: failed'
-:else
-: close
-: put ='case1: ok'
-:endif
-:
-:" case2:
-:new
-:set tags=test83-tags2
-:let v:errmsg = ''
-:tag /.ＢＣ
-:if v:errmsg =~ 'E426:' || getline('.') != 'ＡＢＣ'
-: close
-: put ='case2: failed'
-:else
-: close
-: put ='case2: ok'
-:endif
-:
-:" case3:
-:new
-:set tags=test83-tags3
-:let v:errmsg = ''
-:tag abc50
-:if v:errmsg =~ 'E426:' || getline('.') != 'ＡＢＣ'
-: close
-: put ='case3: failed'
-:else
-: close
-: put ='case3: ok'
-:endif
-:close
-:
-:wq! test.out
-ENDTEST
-
-text for tags1
-abcdefghijklmnopqrs
-
-text for tags2
-ＡＢＣ
-
-text for tags3
-ＡＢＣ
-
-tags1
-!_TAG_FILE_ENCODING	utf-8	//
-abcdefghijklmnopqrs	Xtags1.txt	/abcdefghijklmnopqrs
-tags1-end
diff --git a/src/testdir/test83.ok b/src/testdir/test83.ok
deleted file mode 100644
index 61a1a04..0000000
--- a/src/testdir/test83.ok
+++ /dev/null
@@ -1,4 +0,0 @@
-Results of test83
-case1: ok
-case2: ok
-case3: ok
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index dbf7d20..3f072a5 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -1,6 +1,5 @@
 " Tests for autocommands
 
-
 func! s:cleanup_buffers() abort
   for bnr in range(1, bufnr('$'))
     if bufloaded(bnr) && bufnr('%') != bnr
@@ -917,3 +916,84 @@
   enew
   unlet g:bname
 endfunc
+
+" Test for "*Cmd" autocommands
+func Test_Cmd_Autocmds()
+  call writefile(['start of Xxx', "\tabc2", 'end of Xxx'], 'Xxx')
+
+  enew!
+  au BufReadCmd XtestA 0r Xxx|$del
+  edit XtestA			" will read text of Xxd instead
+  call assert_equal('start of Xxx', getline(1))
+
+  au BufWriteCmd XtestA call append(line("$"), "write")
+  write				" will append a line to the file
+  call assert_equal('write', getline('$'))
+  call assert_fails('read XtestA', 'E484')	" should not read anything
+  call assert_equal('write', getline(4))
+
+  " now we have:
+  " 1	start of Xxx
+  " 2		abc2
+  " 3	end of Xxx
+  " 4	write
+
+  au FileReadCmd XtestB '[r Xxx
+  2r XtestB			" will read Xxx below line 2 instead
+  call assert_equal('start of Xxx', getline(3))
+
+  " now we have:
+  " 1	start of Xxx
+  " 2		abc2
+  " 3	start of Xxx
+  " 4		abc2
+  " 5	end of Xxx
+  " 6	end of Xxx
+  " 7	write
+
+  au FileWriteCmd XtestC '[,']copy $
+  normal 4GA1
+  4,5w XtestC			" will copy lines 4 and 5 to the end
+  call assert_equal("\tabc21", getline(8))
+  call assert_fails('r XtestC', 'E484')	" should not read anything
+  call assert_equal("end of Xxx", getline(9))
+
+  " now we have:
+  " 1	start of Xxx
+  " 2		abc2
+  " 3	start of Xxx
+  " 4		abc21
+  " 5	end of Xxx
+  " 6	end of Xxx
+  " 7	write
+  " 8		abc21
+  " 9	end of Xxx
+
+  let g:lines = []
+  au FileAppendCmd XtestD call extend(g:lines, getline(line("'["), line("']")))
+  w >>XtestD			" will add lines to 'lines'
+  call assert_equal(9, len(g:lines))
+  call assert_fails('$r XtestD', 'E484')	" should not read anything
+  call assert_equal(9, line('$'))
+  call assert_equal('end of Xxx', getline('$'))
+
+  au BufReadCmd XtestE 0r Xxx|$del
+  sp XtestE			" split window with test.out
+  call assert_equal('end of Xxx', getline(3))
+
+  let g:lines = []
+  exe "normal 2Goasdf\<Esc>\<C-W>\<C-W>"
+  au BufWriteCmd XtestE call extend(g:lines, getline(0, '$'))
+  wall				" will write other window to 'lines'
+  call assert_equal(4, len(g:lines), g:lines)
+  call assert_equal('asdf', g:lines[2])
+
+  au! BufReadCmd
+  au! BufWriteCmd
+  au! FileReadCmd
+  au! FileWriteCmd
+  au! FileAppendCmd
+  %bwipe!
+  call delete('Xxx')
+  enew!
+endfunc
diff --git a/src/testdir/test_fold.vim b/src/testdir/test_fold.vim
index b6ba99c..5ebf38f 100644
--- a/src/testdir/test_fold.vim
+++ b/src/testdir/test_fold.vim
@@ -460,3 +460,170 @@
   call assert_equal(3, foldclosedend(2))
   bwipe!
 endfunc
+
+" Various fold related tests
+
+" Basic test if a fold can be created, opened, moving to the end and closed
+func Test_fold_manual()
+  enew!
+  set fdm=manual
+
+  let content = ['1 aa', '2 bb', '3 cc']
+  call append(0, content)
+  call cursor(1, 1)
+  normal zf2j
+  call assert_equal('1 aa', getline(foldclosed('.')))
+  normal zo
+  call assert_equal(-1, foldclosed('.'))
+  normal ]z
+  call assert_equal('3 cc', getline('.'))
+  normal zc
+  call assert_equal('1 aa', getline(foldclosed('.')))
+
+  set fdm&
+  enew!
+endfunc
+
+" test folding with markers.
+func Test_fold_marker()
+  enew!
+  set fdm=marker fdl=1 fdc=3
+
+  let content = ['4 dd {{{', '5 ee {{{ }}}', '6 ff }}}']
+  call append(0, content)
+  call cursor(2, 1)
+  call assert_equal(2, foldlevel('.'))
+  normal [z
+  call assert_equal(1, foldlevel('.'))
+  exe "normal jo{{ \<Esc>r{jj"
+  call assert_equal(1, foldlevel('.'))
+  normal kYpj
+  call assert_equal(0, foldlevel('.'))
+
+  set fdm& fdl& fdc&
+  enew!
+endfunc
+
+" test folding with indent
+func Test_fold_indent()
+  enew!
+  set fdm=indent sw=2
+
+  let content = ['1 aa', '2 bb', '3 cc']
+  call append(0, content)
+  call cursor(2, 1)
+  exe "normal i  \<Esc>jI    "
+  call assert_equal(2, foldlevel('.'))
+  normal k
+  call assert_equal(1, foldlevel('.'))
+
+  set fdm& sw&
+  enew!
+endfunc
+
+" test syntax folding
+func Test_fold_syntax()
+  if !has('syntax')
+    return
+  endif
+
+  enew!
+  set fdm=syntax fdl=0
+
+  syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
+  syn region Fd1 start="ee" end="ff" fold contained
+  syn region Fd2 start="gg" end="hh" fold contained
+  syn region Fd3 start="commentstart" end="commentend" fold contained
+  let content = ['3 cc', '4 dd {{{', '5 ee {{{ }}}', '{{{{', '6 ff }}}',
+	      \ '6 ff }}}', '7 gg', '8 hh', '9 ii']
+  call append(0, content)
+  normal Gzk
+  call assert_equal('9 ii', getline('.'))
+  normal k
+  call assert_equal('3 cc', getline('.'))
+  exe "normal jAcommentstart   \<Esc>Acommentend"
+  set fdl=1
+  normal 3j
+  call assert_equal('7 gg', getline('.'))
+  set fdl=0
+  exe "normal zO\<C-L>j"
+  call assert_equal('8 hh', getline('.'))
+  syn clear Fd1 Fd2 Fd3 Hup
+
+  set fdm& fdl&
+  enew!
+endfunc
+
+func Flvl()
+  let l = getline(v:lnum)
+  if l =~ "bb$"
+    return 2
+  elseif l =~ "gg$"
+    return "s1"
+  elseif l =~ "ii$"
+    return ">2"
+  elseif l =~ "kk$"
+    return "0"
+  endif
+  return "="
+endfun
+
+" test expression folding
+func Test_fold_expr()
+  enew!
+  set fdm=expr fde=Flvl()
+
+  let content = ['1 aa',
+	      \ '2 bb',
+	      \ '3 cc',
+	      \ '4 dd {{{commentstart  commentend',
+	      \ '5 ee {{{ }}}',
+	      \ '{{{',
+	      \ '6 ff }}}',
+	      \ '6 ff }}}',
+	      \ '  7 gg',
+	      \ '    8 hh',
+	      \ '9 ii',
+	      \ 'a jj',
+	      \ 'b kk']
+  call append(0, content)
+  call cursor(1, 1)
+  exe "normal /bb$\<CR>"
+  call assert_equal(2, foldlevel('.'))
+  exe "normal /hh$\<CR>"
+  call assert_equal(1, foldlevel('.'))
+  exe "normal /ii$\<CR>"
+  call assert_equal(2, foldlevel('.'))
+  exe "normal /kk$\<CR>"
+  call assert_equal(0, foldlevel('.'))
+
+  set fdm& fde&
+  enew!
+endfunc
+
+" Bug with fdm=indent and moving folds
+" Moving a fold a few times, messes up the folds below the moved fold.
+" Fixed by 7.4.700
+func Test_fold_move()
+  enew!
+  set fdm=indent sw=2 fdl=0
+
+  let content = ['', '', 'Line1', '  Line2', '  Line3',
+	      \ 'Line4', '  Line5', '  Line6',
+	      \ 'Line7', '  Line8', '  Line9']
+  call append(0, content)
+  normal zM
+  call cursor(4, 1)
+  move 2
+  move 1
+  call assert_equal(7, foldclosed(7))
+  call assert_equal(8, foldclosedend(7))
+  call assert_equal(0, foldlevel(9))
+  call assert_equal(10, foldclosed(10))
+  call assert_equal(11, foldclosedend(10))
+  call assert_equal('+--  2 lines: Line2', foldtextresult(2))
+  call assert_equal('+--  2 lines: Line8', foldtextresult(10))
+
+  set fdm& sw& fdl&
+  enew!
+endfunc
diff --git a/src/testdir/test_swap.vim b/src/testdir/test_swap.vim
new file mode 100644
index 0000000..245e1f1
--- /dev/null
+++ b/src/testdir/test_swap.vim
@@ -0,0 +1,48 @@
+" Tests for the swap feature
+
+" Tests for 'directory' option.
+func Test_swap_directory()
+  if !has("unix")
+    return
+  endif
+  let content = ['start of testfile',
+	      \ 'line 2 Abcdefghij',
+	      \ 'line 3 Abcdefghij',
+	      \ 'end of testfile']
+  call writefile(content, 'Xtest1')
+
+  "  '.', swap file in the same directory as file
+  set dir=.,~
+
+  " Verify that the swap file doesn't exist in the current directory
+  call assert_equal([], glob(".Xtest1*.swp", 1, 1, 1))
+  edit Xtest1
+  let swfname = split(execute("swapname"))[0]
+  call assert_equal([swfname], glob(swfname, 1, 1, 1))
+
+  " './dir', swap file in a directory relative to the file
+  set dir=./Xtest2,.,~
+
+  call mkdir("Xtest2")
+  edit Xtest1
+  call assert_equal([], glob(swfname, 1, 1, 1))
+  let swfname = "Xtest2/Xtest1.swp"
+  call assert_equal(swfname, split(execute("swapname"))[0])
+  call assert_equal([swfname], glob("Xtest2/*", 1, 1, 1))
+
+  " 'dir', swap file in directory relative to the current dir
+  set dir=Xtest.je,~
+
+  call mkdir("Xtest.je")
+  call writefile(content, 'Xtest2/Xtest3')
+  edit Xtest2/Xtest3
+  call assert_equal(["Xtest2/Xtest3"], glob("Xtest2/*", 1, 1, 1))
+  let swfname = "Xtest.je/Xtest3.swp"
+  call assert_equal(swfname, split(execute("swapname"))[0])
+  call assert_equal([swfname], glob("Xtest.je/*", 1, 1, 1))
+
+  set dir&
+  call delete("Xtest1")
+  call delete("Xtest2", "rf")
+  call delete("Xtest.je", "rf")
+endfunc
diff --git a/src/testdir/test_tagjump.vim b/src/testdir/test_tagjump.vim
index dbab8d9..0e51098 100644
--- a/src/testdir/test_tagjump.vim
+++ b/src/testdir/test_tagjump.vim
@@ -174,4 +174,59 @@
   %bwipe!
 endfunc
 
+" Tests for tag search with !_TAG_FILE_ENCODING.
+" Depends on the test83-tags2 and test83-tags3 files.
+func Test_tag_file_encoding()
+  if has('vms')
+    return
+  endif
+
+  if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
+    return
+  endif
+
+  let save_enc = &encoding
+  set encoding=utf8
+
+  let content = ['text for tags1', 'abcdefghijklmnopqrs']
+  call writefile(content, 'Xtags1.txt')
+  let content = ['text for tags2', 'ＡＢＣ']
+  call writefile(content, 'Xtags2.txt')
+  let content = ['text for tags3', 'ＡＢＣ']
+  call writefile(content, 'Xtags3.txt')
+  let content = ['!_TAG_FILE_ENCODING	utf-8	//', 'abcdefghijklmnopqrs	Xtags1.txt	/abcdefghijklmnopqrs']
+  call writefile(content, 'Xtags1')
+
+  " case1:
+  new
+  set tags=Xtags1
+  tag abcdefghijklmnopqrs
+  call assert_equal('Xtags1.txt', expand('%:t'))
+  call assert_equal('abcdefghijklmnopqrs', getline('.'))
+  close
+
+  " case2:
+  new
+  set tags=test83-tags2
+  tag /.ＢＣ
+  call assert_equal('Xtags2.txt', expand('%:t'))
+  call assert_equal('ＡＢＣ', getline('.'))
+  close
+
+  " case3:
+  new
+  set tags=test83-tags3
+  tag abc50
+  call assert_equal('Xtags3.txt', expand('%:t'))
+  call assert_equal('ＡＢＣ', getline('.'))
+  close
+
+  set tags&
+  let &encoding = save_enc
+  call delete('Xtags1.txt')
+  call delete('Xtags2.txt')
+  call delete('Xtags3.txt')
+  call delete('Xtags1')
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index 59ecefe..0595104 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1253,
+/**/
     1252,
 /**/
     1251,
