diff --git a/src/testdir/test_lua.vim b/src/testdir/test_lua.vim
index 7de4574..f6cdae1 100644
--- a/src/testdir/test_lua.vim
+++ b/src/testdir/test_lua.vim
@@ -12,13 +12,20 @@
 CheckFeature lua
 CheckFeature float
 
-let s:luaver = split(split(luaeval('_VERSION'), ' ')[1], '\.')
+" Depending on the lua version, the error messages are different.
+let s:luaver = split(split(systemlist('lua -v')[0], ' ')[1], '\.')
 let s:major = str2nr(s:luaver[0])
 let s:minor = str2nr(s:luaver[1])
-if s:major < 5 || (s:major == 5 && s:minor < 3)
-  let s:lua_53_or_later = 0
-else
+let s:patch = str2nr(s:luaver[2])
+let s:lua_53_or_later = 0
+let s:lua_543_or_later = 0
+if (s:major == 5 && s:minor >= 3) || s:major > 5
   let s:lua_53_or_later = 1
+  if (s:major == 5
+        \ && ((s:minor == 4 && s:patch >= 3) || s:minor > 4))
+        \ || s:major > 5
+    let s:lua_543_or_later = 1
+  endif
 endif
 
 func TearDown()
@@ -55,10 +62,14 @@
   " Error cases
   call assert_fails('luado string.format()',
         \ "[string \"vim chunk\"]:1: bad argument #1 to 'format' (string expected, got no value)")
-  call assert_fails('luado func()',
-        \ s:lua_53_or_later
-        \ ? "[string \"vim chunk\"]:1: attempt to call a nil value (global 'func')"
-        \ : "[string \"vim chunk\"]:1: attempt to call global 'func' (a nil value)")
+  if s:lua_543_or_later
+    let msg = "[string \"vim chunk\"]:1: global 'func' is not callable (a nil value)"
+  elseif s:lua_53_or_later
+    let msg = "[string \"vim chunk\"]:1: attempt to call a nil value (global 'func')"
+  else
+    let msg = "[string \"vim chunk\"]:1: attempt to call global 'func' (a nil value)"
+  endif
+  call assert_fails('luado func()', msg)
   call assert_fails('luado error("failed")', "[string \"vim chunk\"]:1: failed")
 endfunc
 
@@ -143,10 +154,14 @@
   " Window 3 does not exist so vim.window(3) should return nil
   call assert_equal('nil', luaeval('tostring(vim.window(3))'))
 
-  call assert_fails("let n = luaeval('vim.window().xyz()')",
-        \ s:lua_53_or_later
-        \ ? "[string \"luaeval\"]:1: attempt to call a nil value (field 'xyz')"
-        \ : "[string \"luaeval\"]:1: attempt to call field 'xyz' (a nil value)")
+  if s:lua_543_or_later
+    let msg = "[string \"luaeval\"]:1: field 'xyz' is not callable (a nil value)"
+  elseif s:lua_53_or_later
+    let msg = "[string \"luaeval\"]:1: attempt to call a nil value (field 'xyz')"
+  else
+    let msg = "[string \"luaeval\"]:1: attempt to call field 'xyz' (a nil value)"
+  endif
+  call assert_fails("let n = luaeval('vim.window().xyz()')", msg)
   call assert_fails('lua vim.window().xyz = 1',
         \ "[string \"vim chunk\"]:1: invalid window property: `xyz'")
 
@@ -331,10 +346,14 @@
   call assert_equal('4', luaeval('vim.buffer()[4]'))
   call assert_equal(v:null, luaeval('vim.buffer()[5]'))
   call assert_equal(v:null, luaeval('vim.buffer()[{}]'))
-  call assert_fails('lua vim.buffer():xyz()',
-        \ s:lua_53_or_later
-        \ ? "[string \"vim chunk\"]:1: attempt to call a nil value (method 'xyz')"
-        \ : "[string \"vim chunk\"]:1: attempt to call method 'xyz' (a nil value)")
+  if s:lua_543_or_later
+    let msg = "[string \"vim chunk\"]:1: method 'xyz' is not callable (a nil value)"
+  elseif s:lua_53_or_later
+    let msg = "[string \"vim chunk\"]:1: attempt to call a nil value (method 'xyz')"
+  else
+    let msg = "[string \"vim chunk\"]:1: attempt to call method 'xyz' (a nil value)"
+  endif
+  call assert_fails('lua vim.buffer():xyz()', msg)
   call assert_fails('lua vim.buffer()[1] = {}',
         \ '[string "vim chunk"]:1: wrong argument to change')
   bwipe!
@@ -438,10 +457,14 @@
   lua ll = vim.eval('l')
   let x = luaeval("ll[3]")
   call assert_equal(v:null, x)
-  call assert_fails('let x = luaeval("ll:xyz(3)")',
-        \ s:lua_53_or_later
-        \ ? "[string \"luaeval\"]:1: attempt to call a nil value (method 'xyz')"
-        \ : "[string \"luaeval\"]:1: attempt to call method 'xyz' (a nil value)")
+  if s:lua_543_or_later
+    let msg = "[string \"luaeval\"]:1: method 'xyz' is not callable (a nil value)"
+  elseif s:lua_53_or_later
+    let msg = "[string \"luaeval\"]:1: attempt to call a nil value (method 'xyz')"
+  else
+    let msg = "[string \"luaeval\"]:1: attempt to call method 'xyz' (a nil value)"
+  endif
+  call assert_fails('let x = luaeval("ll:xyz(3)")', msg)
   let y = luaeval("ll[{}]")
   call assert_equal(v:null, y)
 
@@ -467,7 +490,7 @@
     throw 'Skipped: Lua version < 5.3'
   endif
 
-  let l = [1, 2] 
+  let l = [1, 2]
   lua t = vim.eval('l')
   lua table.insert(t, 10)
   lua t[#t + 1] = 20
@@ -625,10 +648,14 @@
   call assert_equal(2, n)
   let n = luaeval('lb[6]')
   call assert_equal(v:null, n)
-  call assert_fails('let x = luaeval("lb:xyz(3)")',
-        \ s:lua_53_or_later
-        \ ? "[string \"luaeval\"]:1: attempt to call a nil value (method 'xyz')"
-        \ : "[string \"luaeval\"]:1: attempt to call method 'xyz' (a nil value)")
+  if s:lua_543_or_later
+    let msg = "[string \"luaeval\"]:1: method 'xyz' is not callable (a nil value)"
+  elseif s:lua_53_or_later
+    let msg = "[string \"luaeval\"]:1: attempt to call a nil value (method 'xyz')"
+  else
+    let msg = "[string \"luaeval\"]:1: attempt to call method 'xyz' (a nil value)"
+  endif
+  call assert_fails('let x = luaeval("lb:xyz(3)")', msg)
   let y = luaeval("lb[{}]")
   call assert_equal(v:null, y)
 
diff --git a/src/version.c b/src/version.c
index 1eeaaa6..72fd189 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2696,
+/**/
     2695,
 /**/
     2694,
