diff --git a/src/testdir/test_search.vim b/src/testdir/test_search.vim
index d57dbd7..b17e450 100644
--- a/src/testdir/test_search.vim
+++ b/src/testdir/test_search.vim
@@ -1543,4 +1543,39 @@
   close!
 endfunc
 
+" Test for invalid regular expressions
+func Test_invalid_regexp()
+  set regexpengine=1
+  call assert_fails("call search(repeat('\\(.\\)', 10))", 'E51:')
+  call assert_fails("call search('a\\+*')", 'E61:')
+  call assert_fails("call search('x\\@#')", 'E59:')
+  call assert_fails("call search('\\_m')", 'E63:')
+  call assert_fails("call search('\\+')", 'E64:')
+  call assert_fails("call search('\\1')", 'E65:')
+  call assert_fails("call search('\\z\\(\\)')", 'E66:')
+  call assert_fails("call search('\\z2')", 'E67:')
+  call assert_fails("call search('\\zx')", 'E68:')
+  call assert_fails("call search('\\%[ab')", 'E69:')
+  call assert_fails("call search('\\%[]')", 'E70:')
+  call assert_fails("call search('\\%a')", 'E71:')
+  call assert_fails("call search('ab\\%[\\(cd\\)]')", 'E369:')
+  call assert_fails("call search('ab\\%[\\%(cd\\)]')", 'E369:')
+  set regexpengine=2
+  call assert_fails("call search('\\_')", 'E865:')
+  call assert_fails("call search('\\+')", 'E866:')
+  call assert_fails("call search('\\zx')", 'E867:')
+  call assert_fails("call search('\\%a')", 'E867:')
+  call assert_fails("call search('x\\@#')", 'E869:')
+  call assert_fails("call search(repeat('\\(.\\)', 10))", 'E872:')
+  call assert_fails("call search('\\_m')", 'E877:')
+  call assert_fails("call search('\\%(')", 'E53:')
+  call assert_fails("call search('\\(')", 'E54:')
+  call assert_fails("call search('\\)')", 'E55:')
+  call assert_fails("call search('\\z\\(\\)')", 'E66:')
+  call assert_fails("call search('\\%[ab')", 'E69:')
+  call assert_fails("call search('\\%9999999999999999999999999999v')", 'E951:')
+  set regexpengine&
+  call assert_fails("call search('\\%#=3ab')", 'E864:')
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_source.vim b/src/testdir/test_source.vim
index ba6fd5a..b22e57c 100644
--- a/src/testdir/test_source.vim
+++ b/src/testdir/test_source.vim
@@ -87,4 +87,10 @@
   call delete('Xscript.vim')
 endfunc
 
+func Test_source_error()
+  call assert_fails('scriptencoding utf-8', 'E167:')
+  call assert_fails('finish', 'E168:')
+  call assert_fails('scriptversion 2', 'E984:')
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_syntax.vim b/src/testdir/test_syntax.vim
index 8197f1a..c7fefa9 100644
--- a/src/testdir/test_syntax.vim
+++ b/src/testdir/test_syntax.vim
@@ -332,6 +332,64 @@
   call assert_fails('syntax sync x', 'E404:')
   call assert_fails('syntax keyword Abc a[', 'E789:')
   call assert_fails('syntax keyword Abc a[bc]d', 'E890:')
+
+  let caught_393 = 0
+  try
+    syntax keyword cMyItem grouphere G1
+  catch /E393:/
+    let caught_393 = 1
+  endtry
+  call assert_equal(1, caught_393)
+
+  let caught_394 = 0
+  try
+    syntax sync match Abc grouphere MyItem "abc"'
+  catch /E394:/
+    let caught_394 = 1
+  endtry
+  call assert_equal(1, caught_394)
+
+  " Test for too many \z\( and unmatched \z\(
+  " Not able to use assert_fails() here because both E50:/E879: and E475:
+  " messages are emitted.
+  set regexpengine=1
+  let caught_52 = 0
+  try
+    syntax region MyRegion start='\z\(' end='\*/'
+  catch /E52:/
+    let caught_52 = 1
+  endtry
+  call assert_equal(1, caught_52)
+
+  let caught_50 = 0
+  try
+    let cmd = "syntax region MyRegion start='"
+    let cmd ..= repeat("\\z\\(.\\)", 10) .. "' end='\*/'"
+    exe cmd
+  catch /E50:/
+    let caught_50 = 1
+  endtry
+  call assert_equal(1, caught_50)
+
+  set regexpengine=2
+  let caught_54 = 0
+  try
+    syntax region MyRegion start='\z\(' end='\*/'
+  catch /E54:/
+    let caught_54 = 1
+  endtry
+  call assert_equal(1, caught_54)
+
+  let caught_879 = 0
+  try
+    let cmd = "syntax region MyRegion start='"
+    let cmd ..= repeat("\\z\\(.\\)", 10) .. "' end='\*/'"
+    exe cmd
+  catch /E879:/
+    let caught_879 = 1
+  endtry
+  call assert_equal(1, caught_879)
+  set regexpengine&
 endfunc
 
 func Test_syn_sync()
diff --git a/src/testdir/test_user_func.vim b/src/testdir/test_user_func.vim
index c8f8d07..aec3619 100644
--- a/src/testdir/test_user_func.vim
+++ b/src/testdir/test_user_func.vim
@@ -3,6 +3,9 @@
 " Also test that a builtin function cannot be replaced.
 " Also test for regression when calling arbitrary expression.
 
+source check.vim
+source shared.vim
+
 func Table(title, ...)
   let ret = a:title
   let idx = 1
@@ -83,6 +86,7 @@
   normal o[(one again
   call assert_equal('1. one again', getline('.'))
 
+  " Try to overwrite a function in the global (g:) scope
   call assert_equal(3, max([1, 2, 3]))
   call assert_fails("call extend(g:, {'max': function('min')})", 'E704')
   call assert_equal(3, max([1, 2, 3]))
@@ -175,4 +179,256 @@
   call assert_fails("function Xabc", 'E123:')
 endfunc
 
+" Test for <sfile>, <slnum> in a function
+func Test_sfile_in_function()
+  func Xfunc()
+    call assert_match('..Test_sfile_in_function\[5]..Xfunc', expand('<sfile>'))
+    call assert_equal('2', expand('<slnum>'))
+  endfunc
+  call Xfunc()
+  delfunc Xfunc
+endfunc
+
+" Test trailing text after :endfunction				    {{{1
+func Test_endfunction_trailing()
+  call assert_false(exists('*Xtest'))
+
+  exe "func Xtest()\necho 'hello'\nendfunc\nlet done = 'yes'"
+  call assert_true(exists('*Xtest'))
+  call assert_equal('yes', done)
+  delfunc Xtest
+  unlet done
+
+  exe "func Xtest()\necho 'hello'\nendfunc|let done = 'yes'"
+  call assert_true(exists('*Xtest'))
+  call assert_equal('yes', done)
+  delfunc Xtest
+  unlet done
+
+  " trailing line break
+  exe "func Xtest()\necho 'hello'\nendfunc\n"
+  call assert_true(exists('*Xtest'))
+  delfunc Xtest
+
+  set verbose=1
+  exe "func Xtest()\necho 'hello'\nendfunc \" garbage"
+  call assert_notmatch('W22:', split(execute('1messages'), "\n")[0])
+  call assert_true(exists('*Xtest'))
+  delfunc Xtest
+
+  exe "func Xtest()\necho 'hello'\nendfunc garbage"
+  call assert_match('W22:', split(execute('1messages'), "\n")[0])
+  call assert_true(exists('*Xtest'))
+  delfunc Xtest
+  set verbose=0
+
+  function Foo()
+    echo 'hello'
+  endfunction | echo 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+  delfunc Foo
+endfunc
+
+func Test_delfunction_force()
+  delfunc! Xtest
+  delfunc! Xtest
+  func Xtest()
+    echo 'nothing'
+  endfunc
+  delfunc! Xtest
+  delfunc! Xtest
+
+  " Try deleting the current function
+  call assert_fails('delfunc Test_delfunction_force', 'E131:')
+endfunc
+
+func Test_function_defined_line()
+  CheckNotGui
+
+  let lines =<< trim [CODE]
+  " F1
+  func F1()
+    " F2
+    func F2()
+      "
+      "
+      "
+      return
+    endfunc
+    " F3
+    execute "func F3()\n\n\n\nreturn\nendfunc"
+    " F4
+    execute "func F4()\n
+                \\n
+                \\n
+                \\n
+                \return\n
+                \endfunc"
+  endfunc
+  " F5
+  execute "func F5()\n\n\n\nreturn\nendfunc"
+  " F6
+  execute "func F6()\n
+              \\n
+              \\n
+              \\n
+              \return\n
+              \endfunc"
+  call F1()
+  verbose func F1
+  verbose func F2
+  verbose func F3
+  verbose func F4
+  verbose func F5
+  verbose func F6
+  qall!
+  [CODE]
+
+  call writefile(lines, 'Xtest.vim')
+  let res = system(GetVimCommandClean() .. ' -es -X -S Xtest.vim')
+  call assert_equal(0, v:shell_error)
+
+  let m = matchstr(res, 'function F1()[^[:print:]]*[[:print:]]*')
+  call assert_match(' line 2$', m)
+
+  let m = matchstr(res, 'function F2()[^[:print:]]*[[:print:]]*')
+  call assert_match(' line 4$', m)
+
+  let m = matchstr(res, 'function F3()[^[:print:]]*[[:print:]]*')
+  call assert_match(' line 11$', m)
+
+  let m = matchstr(res, 'function F4()[^[:print:]]*[[:print:]]*')
+  call assert_match(' line 13$', m)
+
+  let m = matchstr(res, 'function F5()[^[:print:]]*[[:print:]]*')
+  call assert_match(' line 21$', m)
+
+  let m = matchstr(res, 'function F6()[^[:print:]]*[[:print:]]*')
+  call assert_match(' line 23$', m)
+
+  call delete('Xtest.vim')
+endfunc
+
+" Test for defining a function reference in the global scope
+func Test_add_funcref_to_global_scope()
+  let x = g:
+  let caught_E862 = 0
+  try
+    func x.Xfunc()
+      return 1
+    endfunc
+  catch /E862:/
+    let caught_E862 = 1
+  endtry
+  call assert_equal(1, caught_E862)
+endfunc
+
+func Test_funccall_garbage_collect()
+  func Func(x, ...)
+    call add(a:x, a:000)
+  endfunc
+  call Func([], [])
+  " Must not crash cause by invalid freeing
+  call test_garbagecollect_now()
+  call assert_true(v:true)
+  delfunc Func
+endfunc
+
+" Test for script-local function
+func <SID>DoLast()
+  call append(line('$'), "last line")
+endfunc
+
+func s:DoNothing()
+  call append(line('$'), "nothing line")
+endfunc
+
+func Test_script_local_func()
+  set nocp nomore viminfo+=nviminfo
+  new
+  nnoremap <buffer> _x	:call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
+
+  normal _x
+  call assert_equal('nothing line', getline(2))
+  call assert_equal('last line', getline(3))
+  close!
+
+  " Try to call a script local function in global scope
+  let lines =<< trim [CODE]
+    :call assert_fails('call s:Xfunc()', 'E81:')
+    :call assert_fails('let x = call("<SID>Xfunc", [])', 'E120:')
+    :call writefile(v:errors, 'Xresult')
+    :qall
+
+  [CODE]
+  call writefile(lines, 'Xscript')
+  if RunVim([], [], '-s Xscript')
+    call assert_equal([], readfile('Xresult'))
+  endif
+  call delete('Xresult')
+  call delete('Xscript')
+endfunc
+
+" Test for errors in defining new functions
+func Test_func_def_error()
+  call assert_fails('func Xfunc abc ()', 'E124:')
+  call assert_fails('func Xfunc(', 'E125:')
+  call assert_fails('func xfunc()', 'E128:')
+
+  " Try to redefine a function that is in use
+  let caught_E127 = 0
+  try
+    func! Test_func_def_error()
+    endfunc
+  catch /E127:/
+    let caught_E127 = 1
+  endtry
+  call assert_equal(1, caught_E127)
+
+  " Try to define a function in a dict twice
+  let d = {}
+  let lines =<< trim END
+    func d.F1()
+      return 1
+    endfunc
+  END
+  let l = join(lines, "\n") . "\n"
+  exe l
+  call assert_fails('exe l', 'E717:')
+
+  " Define an autoload function with an incorrect file name
+  call writefile(['func foo#Bar()', 'return 1', 'endfunc'], 'Xscript')
+  call assert_fails('source Xscript', 'E746:')
+  call delete('Xscript')
+endfunc
+
+" Test for deleting a function
+func Test_del_func()
+  call assert_fails('delfunction Xabc', 'E130:')
+  let d = {'a' : 10}
+  call assert_fails('delfunc d.a', 'E718:')
+endfunc
+
+" Test for calling return outside of a function
+func Test_return_outside_func()
+  call writefile(['return 10'], 'Xscript')
+  call assert_fails('source Xscript', 'E133:')
+  call delete('Xscript')
+endfunc
+
+" Test for errors in calling a function
+func Test_func_arg_error()
+  " Too many arguments
+  call assert_fails("call call('min', range(1,20))", 'E118:')
+  call assert_fails("call call('min', range(1,21))", 'E699:')
+  call assert_fails('echo min(0,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,0,1)',
+        \ 'E740:')
+
+  " Missing dict argument
+  func Xfunc() dict
+    return 1
+  endfunc
+  call assert_fails('call Xfunc()', 'E725:')
+  delfunc Xfunc
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_vimscript.vim b/src/testdir/test_vimscript.vim
index 9bc6702..f9df09b 100644
--- a/src/testdir/test_vimscript.vim
+++ b/src/testdir/test_vimscript.vim
@@ -1576,58 +1576,6 @@
     call assert_fails("call invert({})", 'E728:')
 endfunc
 
-" Test trailing text after :endfunction				    {{{1
-func Test_endfunction_trailing()
-    call assert_false(exists('*Xtest'))
-
-    exe "func Xtest()\necho 'hello'\nendfunc\nlet done = 'yes'"
-    call assert_true(exists('*Xtest'))
-    call assert_equal('yes', done)
-    delfunc Xtest
-    unlet done
-
-    exe "func Xtest()\necho 'hello'\nendfunc|let done = 'yes'"
-    call assert_true(exists('*Xtest'))
-    call assert_equal('yes', done)
-    delfunc Xtest
-    unlet done
-
-    " trailing line break
-    exe "func Xtest()\necho 'hello'\nendfunc\n"
-    call assert_true(exists('*Xtest'))
-    delfunc Xtest
-
-    set verbose=1
-    exe "func Xtest()\necho 'hello'\nendfunc \" garbage"
-    call assert_notmatch('W22:', split(execute('1messages'), "\n")[0])
-    call assert_true(exists('*Xtest'))
-    delfunc Xtest
-
-    exe "func Xtest()\necho 'hello'\nendfunc garbage"
-    call assert_match('W22:', split(execute('1messages'), "\n")[0])
-    call assert_true(exists('*Xtest'))
-    delfunc Xtest
-    set verbose=0
-
-    function Foo()
-	echo 'hello'
-    endfunction | echo 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
-    delfunc Foo
-endfunc
-
-func Test_delfunction_force()
-    delfunc! Xtest
-    delfunc! Xtest
-    func Xtest()
-	echo 'nothing'
-    endfunc
-    delfunc! Xtest
-    delfunc! Xtest
-
-    " Try deleting the current function
-    call assert_fails('delfunc Test_delfunction_force', 'E131:')
-endfunc
-
 " Test using bang after user command				    {{{1
 func Test_user_command_with_bang()
     command -bang Nieuw let nieuw = 1
@@ -1637,26 +1585,6 @@
     delcommand Nieuw
 endfunc
 
-" Test for script-local function
-func <SID>DoLast()
-  call append(line('$'), "last line")
-endfunc
-
-func s:DoNothing()
-  call append(line('$'), "nothing line")
-endfunc
-
-func Test_script_local_func()
-  set nocp nomore viminfo+=nviminfo
-  new
-  nnoremap <buffer> _x	:call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
-
-  normal _x
-  call assert_equal('nothing line', getline(2))
-  call assert_equal('last line', getline(3))
-  enew! | close
-endfunc
-
 func Test_script_expand_sfile()
   let lines =<< trim END
     func s:snr()
@@ -1888,84 +1816,6 @@
     delfunc DictFunc
 endfunc
 
-func Test_funccall_garbage_collect()
-    func Func(x, ...)
-        call add(a:x, a:000)
-    endfunc
-    call Func([], [])
-    " Must not crash cause by invalid freeing
-    call test_garbagecollect_now()
-    call assert_true(v:true)
-    delfunc Func
-endfunc
-
-func Test_function_defined_line()
-    CheckNotGui
-
-    let lines =<< trim [CODE]
-    " F1
-    func F1()
-        " F2
-        func F2()
-            "
-            "
-            "
-            return
-        endfunc
-        " F3
-        execute "func F3()\n\n\n\nreturn\nendfunc"
-        " F4
-        execute "func F4()\n
-                    \\n
-                    \\n
-                    \\n
-                    \return\n
-                    \endfunc"
-    endfunc
-    " F5
-    execute "func F5()\n\n\n\nreturn\nendfunc"
-    " F6
-    execute "func F6()\n
-                \\n
-                \\n
-                \\n
-                \return\n
-                \endfunc"
-    call F1()
-    verbose func F1
-    verbose func F2
-    verbose func F3
-    verbose func F4
-    verbose func F5
-    verbose func F6
-    qall!
-    [CODE]
-
-    call writefile(lines, 'Xtest.vim')
-    let res = system(GetVimCommandClean() .. ' -es -X -S Xtest.vim')
-    call assert_equal(0, v:shell_error)
-
-    let m = matchstr(res, 'function F1()[^[:print:]]*[[:print:]]*')
-    call assert_match(' line 2$', m)
-
-    let m = matchstr(res, 'function F2()[^[:print:]]*[[:print:]]*')
-    call assert_match(' line 4$', m)
-
-    let m = matchstr(res, 'function F3()[^[:print:]]*[[:print:]]*')
-    call assert_match(' line 11$', m)
-
-    let m = matchstr(res, 'function F4()[^[:print:]]*[[:print:]]*')
-    call assert_match(' line 13$', m)
-
-    let m = matchstr(res, 'function F5()[^[:print:]]*[[:print:]]*')
-    call assert_match(' line 21$', m)
-
-    let m = matchstr(res, 'function F6()[^[:print:]]*[[:print:]]*')
-    call assert_match(' line 23$', m)
-
-    call delete('Xtest.vim')
-endfunc
-
 " Test for missing :endif, :endfor, :endwhile and :endtry           {{{1
 func Test_missing_end()
   call writefile(['if 2 > 1', 'echo ">"'], 'Xscript')
@@ -2098,16 +1948,6 @@
   call delete('Xscript')
 endfunc
 
-" Test for <sfile>, <slnum> in a function                           {{{1
-func Test_sfile_in_function()
-  func Xfunc()
-    call assert_match('..Test_sfile_in_function\[5]..Xfunc', expand('<sfile>'))
-    call assert_equal('2', expand('<slnum>'))
-  endfunc
-  call Xfunc()
-  delfunc Xfunc
-endfunc
-
 " Test for errors in converting to float from various types         {{{1
 func Test_float_conversion_errors()
   if has('float')
diff --git a/src/version.c b/src/version.c
index 2caae75..63f811c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    531,
+/**/
     530,
 /**/
     529,
