diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 967cd8f..4d20794 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -189,15 +189,14 @@
   call term_wait(1234)
 
   call term_wait(buf)
-  let g:buf = buf
   " On MS-Windows we first get a startup message of two lines, wait for the
   " "cls" to happen, after that we have one line with three characters.
-  call WaitFor('len(term_scrape(g:buf, 1)) == 3')
+  call WaitFor({-> len(term_scrape(buf, 1)) == 3})
   call Check_123(buf)
 
   " Must still work after the job ended.
-  let g:job = term_getjob(buf)
-  call WaitFor('job_status(g:job) == "dead"')
+  let job = term_getjob(buf)
+  call WaitFor({-> job_status(job) == "dead"})
   call term_wait(buf)
   call Check_123(buf)
 
@@ -213,17 +212,17 @@
   if has('win32')
     " Run cmd with UTF-8 codepage to make the type command print the expected
     " multibyte characters.
-    let g:buf = term_start("cmd /K chcp 65001")
-    call term_sendkeys(g:buf, "type Xtext\<CR>")
-    call term_sendkeys(g:buf, "exit\<CR>")
-    let g:line = 4
+    let buf = term_start("cmd /K chcp 65001")
+    call term_sendkeys(buf, "type Xtext\<CR>")
+    call term_sendkeys(buf, "exit\<CR>")
+    let line = 4
   else
-    let g:buf = term_start("cat Xtext")
-    let g:line = 1
+    let buf = term_start("cat Xtext")
+    let line = 1
   endif
 
-  call WaitFor('len(term_scrape(g:buf, g:line)) >= 7 && term_scrape(g:buf, g:line)[0].chars == "l"')
-  let l = term_scrape(g:buf, g:line)
+  call WaitFor({-> len(term_scrape(buf, line)) >= 7 && term_scrape(buf, line)[0].chars == "l"})
+  let l = term_scrape(buf, line)
   call assert_true(len(l) >= 7)
   call assert_equal('l', l[0].chars)
   call assert_equal('é', l[1].chars)
@@ -235,13 +234,11 @@
   call assert_equal('r', l[5].chars)
   call assert_equal('s', l[6].chars)
 
-  let g:job = term_getjob(g:buf)
-  call WaitFor('job_status(g:job) == "dead"')
-  call term_wait(g:buf)
+  let job = term_getjob(buf)
+  call WaitFor({-> job_status(job) == "dead"})
+  call term_wait(buf)
 
-  exe g:buf . 'bwipe'
-  unlet g:buf
-  unlet g:line
+  exe buf . 'bwipe'
   call delete('Xtext')
 endfunc
 
@@ -254,8 +251,8 @@
   endif
   let buf = term_start(cmd)
 
-  let g:job = term_getjob(buf)
-  call WaitFor('job_status(g:job) == "dead"')
+  let job = term_getjob(buf)
+  call WaitFor({-> job_status(job) == "dead"})
   call term_wait(buf)
   if has('win32')
     " TODO: this should not be needed
@@ -483,7 +480,7 @@
 endfunction
 
 func Test_terminal_noblock()
-  let g:buf = term_start(&shell)
+  let buf = term_start(&shell)
   if has('mac')
     " The shell or something else has a problem dealing with more than 1000
     " characters at the same time.
@@ -493,26 +490,24 @@
   endif
 
   for c in ['a','b','c','d','e','f','g','h','i','j','k']
-    call term_sendkeys(g:buf, 'echo ' . repeat(c, len) . "\<cr>")
+    call term_sendkeys(buf, 'echo ' . repeat(c, len) . "\<cr>")
   endfor
-  call term_sendkeys(g:buf, "echo done\<cr>")
+  call term_sendkeys(buf, "echo done\<cr>")
 
   " On MS-Windows there is an extra empty line below "done".  Find "done" in
   " the last-but-one or the last-but-two line.
-  let g:lnum = term_getsize(g:buf)[0] - 1
-  call WaitFor('term_getline(g:buf, g:lnum) =~ "done" || term_getline(g:buf, g:lnum - 1) =~ "done"', 3000)
-  let line = term_getline(g:buf, g:lnum)
+  let lnum = term_getsize(buf)[0] - 1
+  call WaitFor({-> term_getline(buf, lnum) =~ "done" || term_getline(buf, lnum - 1) =~ "done"}, 3000)
+  let line = term_getline(buf, lnum)
   if line !~ 'done'
-    let line = term_getline(g:buf, g:lnum - 1)
+    let line = term_getline(buf, lnum - 1)
   endif
   call assert_match('done', line)
 
-  let g:job = term_getjob(g:buf)
-  call Stop_shell_in_terminal(g:buf)
-  call term_wait(g:buf)
-  unlet g:buf
+  let g:job = term_getjob(buf)
+  call Stop_shell_in_terminal(buf)
+  call term_wait(buf)
   unlet g:job
-  unlet g:lnum
   bwipe
 endfunc
 
