diff --git a/src/eval.c b/src/eval.c
index 56bb21f..e588c23 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -9084,6 +9084,17 @@
 }
 
     void
+assert_report(typval_T *argvars)
+{
+    garray_T	ga;
+
+    prepare_assert_error(&ga);
+    ga_concat(&ga, get_tv_string(&argvars[0]));
+    assert_error(&ga);
+    ga_clear(&ga);
+}
+
+    void
 assert_exception(typval_T *argvars)
 {
     garray_T	ga;
diff --git a/src/evalfunc.c b/src/evalfunc.c
index bee58ee..a00c753 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -52,6 +52,7 @@
 static void f_assert_match(typval_T *argvars, typval_T *rettv);
 static void f_assert_notequal(typval_T *argvars, typval_T *rettv);
 static void f_assert_notmatch(typval_T *argvars, typval_T *rettv);
+static void f_assert_report(typval_T *argvars, typval_T *rettv);
 static void f_assert_true(typval_T *argvars, typval_T *rettv);
 #ifdef FEAT_FLOAT
 static void f_asin(typval_T *argvars, typval_T *rettv);
@@ -483,6 +484,7 @@
     {"assert_match",	2, 3, f_assert_match},
     {"assert_notequal",	2, 3, f_assert_notequal},
     {"assert_notmatch",	2, 3, f_assert_notmatch},
+    {"assert_report",	1, 1, f_assert_report},
     {"assert_true",	1, 2, f_assert_true},
 #ifdef FEAT_FLOAT
     {"atan",		1, 1, f_atan},
@@ -1314,6 +1316,15 @@
 }
 
 /*
+ * "assert_report(msg)" function
+ */
+    static void
+f_assert_report(typval_T *argvars, typval_T *rettv UNUSED)
+{
+    assert_report(argvars);
+}
+
+/*
  * "assert_true(actual[, msg])" function
  */
     static void
diff --git a/src/if_xcmdsrv.c b/src/if_xcmdsrv.c
index 18c208b..9ff6d76 100644
--- a/src/if_xcmdsrv.c
+++ b/src/if_xcmdsrv.c
@@ -596,6 +596,10 @@
 	if (seconds >= 0 && (now - start) >= seconds)
 	    break;
 
+#ifdef FEAT_TIMERS
+	check_due_timer();
+#endif
+
 	/* Just look out for the answer without calling back into Vim */
 	if (localLoop)
 	{
diff --git a/src/os_mswin.c b/src/os_mswin.c
index cfa2084..45b1478 100644
--- a/src/os_mswin.c
+++ b/src/os_mswin.c
@@ -2570,6 +2570,9 @@
 	/* Loop until we receive a reply */
 	while (reply_received == 0)
 	{
+#ifdef FEAT_TIMERS
+	    check_due_timer();
+#endif
 	    /* Wait for a SendMessage() call to us.  This could be the reply
 	     * we are waiting for.  Use a timeout of a second, to catch the
 	     * situation that the server died unexpectedly. */
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index a2a4a8d..5fc6260 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -123,6 +123,7 @@
 void assert_match_common(typval_T *argvars, assert_type_T atype);
 void assert_inrange(typval_T *argvars);
 void assert_bool(typval_T *argvars, int isTrue);
+void assert_report(typval_T *argvars);
 void assert_exception(typval_T *argvars);
 void assert_fails(typval_T *argvars);
 void fill_assert_error(garray_T *gap, typval_T *opt_msg_tv, char_u *exp_str, typval_T *exp_tv, typval_T *got_tv, assert_type_T atype);
diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim
index b0964a4..832d97e 100644
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -86,7 +86,7 @@
   return lnum - top - 1
 endfunc
 
-function RunTheTest(test)
+func RunTheTest(test)
   echo 'Executing ' . a:test
 
   " Avoid stopping at the "hit enter" prompt
@@ -142,6 +142,60 @@
   set nomodified
 endfunc
 
+func AfterTheTest()
+  if len(v:errors) > 0
+    let s:fail += 1
+    call add(s:errors, 'Found errors in ' . s:test . ':')
+    call extend(s:errors, v:errors)
+    let v:errors = []
+  endif
+endfunc
+
+" This function can be called by a test if it wants to abort testing.
+func FinishTesting()
+  call AfterTheTest()
+
+  " Don't write viminfo on exit.
+  set viminfo=
+
+  if s:fail == 0
+    " Success, create the .res file so that make knows it's done.
+    exe 'split ' . fnamemodify(g:testname, ':r') . '.res'
+    write
+  endif
+
+  if len(s:errors) > 0
+    " Append errors to test.log
+    split test.log
+    call append(line('$'), '')
+    call append(line('$'), 'From ' . g:testname . ':')
+    call append(line('$'), s:errors)
+    write
+  endif
+
+  let message = 'Executed ' . s:done . (s:done > 1 ? ' tests' : ' test')
+  echo message
+  call add(s:messages, message)
+  if s:fail > 0
+    let message = s:fail . ' FAILED:'
+    echo message
+    call add(s:messages, message)
+    call extend(s:messages, s:errors)
+  endif
+
+  " Add SKIPPED messages
+  call extend(s:messages, s:skipped)
+
+  " Append messages to the file "messages"
+  split messages
+  call append(line('$'), '')
+  call append(line('$'), 'From ' . g:testname . ':')
+  call append(line('$'), s:messages)
+  write
+
+  qall!
+endfunc
+
 " Source the test script.  First grab the file name, in case the script
 " navigates away.  g:testname can be used by the tests.
 let g:testname = expand('%')
@@ -164,6 +218,7 @@
 
 " Names of flaky tests.
 let s:flaky = [
+      \ 'Test_client_server()',
       \ 'Test_close_and_exit_cb()',
       \ 'Test_collapse_buffers()',
       \ 'Test_communicate()',
@@ -197,52 +252,9 @@
     call RunTheTest(s:test)
   endif
 
-  if len(v:errors) > 0
-    let s:fail += 1
-    call add(s:errors, 'Found errors in ' . s:test . ':')
-    call extend(s:errors, v:errors)
-    let v:errors = []
-  endif
+  call AfterTheTest()
 endfor
 
-" Don't write viminfo on exit.
-set viminfo=
-
-if s:fail == 0
-  " Success, create the .res file so that make knows it's done.
-  exe 'split ' . fnamemodify(g:testname, ':r') . '.res'
-  write
-endif
-
-if len(s:errors) > 0
-  " Append errors to test.log
-  split test.log
-  call append(line('$'), '')
-  call append(line('$'), 'From ' . g:testname . ':')
-  call append(line('$'), s:errors)
-  write
-endif
-
-let message = 'Executed ' . s:done . (s:done > 1 ? ' tests' : ' test')
-echo message
-call add(s:messages, message)
-if s:fail > 0
-  let message = s:fail . ' FAILED:'
-  echo message
-  call add(s:messages, message)
-  call extend(s:messages, s:errors)
-endif
-
-" Add SKIPPED messages
-call extend(s:messages, s:skipped)
-
-" Append messages to the file "messages"
-split messages
-call append(line('$'), '')
-call append(line('$'), 'From ' . g:testname . ':')
-call append(line('$'), s:messages)
-write
-
-qall!
+call FinishTesting()
 
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_clientserver.vim b/src/testdir/test_clientserver.vim
index 55f440f..598b0ac 100644
--- a/src/testdir/test_clientserver.vim
+++ b/src/testdir/test_clientserver.vim
@@ -6,29 +6,46 @@
 
 source shared.vim
 
+let s:where = 0
+func Abort(id)
+  call assert_report('Test timed out at ' . s:where)
+  call FinishTesting()
+endfunc
+
 func Test_client_server()
   let cmd = GetVimCommand()
   if cmd == ''
     return
   endif
-  let name = 'XVIMTEXT'
+
+  " Some of these commands may hang when failing.
+  call timer_start(10000, 'Abort')
+
+  let s:where = 1
+  let name = 'XVIMTEST'
   let cmd .= ' --servername ' . name
   let g:job = job_start(cmd, {'stoponexit': 'kill', 'out_io': 'null'})
   call WaitFor('job_status(g:job) == "run"')
   if job_status(g:job) != 'run'
-    call assert_true(0, 'Cannot run the Vim server')
+    call assert_report('Cannot run the Vim server')
     return
   endif
+  let s:where = 2
 
   " Takes a short while for the server to be active.
   call WaitFor('serverlist() =~ "' . name . '"')
   call assert_match(name, serverlist())
+  let s:where = 3
 
   call remote_foreground(name)
+  let s:where = 4
 
   call remote_send(name, ":let testvar = 'yes'\<CR>")
+  let s:where = 5
   call WaitFor('remote_expr("' . name . '", "testvar") == "yes"')
+  let s:where = 6
   call assert_equal('yes', remote_expr(name, "testvar"))
+  let s:where = 7
 
   if has('unix') && has('gui') && !has('gui_running')
     " Running in a terminal and the GUI is avaiable: Tell the server to open
@@ -36,29 +53,40 @@
     " Need to wait for the GUI to start up, otherwise the send hangs in trying
     " to send to the terminal window.
     call remote_send(name, ":gui -f\<CR>")
+    let s:where = 8
     sleep 500m
     call remote_send(name, ":let testvar = 'maybe'\<CR>")
+    let s:where = 9
     call WaitFor('remote_expr("' . name . '", "testvar") == "maybe"')
+    let s:where = 10
     call assert_equal('maybe', remote_expr(name, "testvar"))
+    let s:where = 11
   endif
 
   call assert_fails('call remote_send("XXX", ":let testvar = ''yes''\<CR>")', 'E241')
+  let s:where = 12
 
   " Expression evaluated locally.
   if v:servername == ''
     call remote_startserver('MYSELF')
+    let s:where = 13
     call assert_equal('MYSELF', v:servername)
   endif
   let g:testvar = 'myself'
   call assert_equal('myself', remote_expr(v:servername, 'testvar'))
+  let s:where = 14
 
   call remote_send(name, ":call server2client(expand('<client>'), 'got it')\<CR>", 'g:myserverid')
+  let s:where = 15
   call assert_equal('got it', remote_read(g:myserverid))
+  let s:where = 16
 
   call remote_send(name, ":qa!\<CR>")
+  let s:where = 17
   call WaitFor('job_status(g:job) == "dead"')
+  let s:where = 18
   if job_status(g:job) != 'dead'
-    call assert_true(0, 'Server did not exit')
+    call assert_report('Server did not exit')
     call job_stop(g:job, 'kill')
   endif
 endfunc
diff --git a/src/version.c b/src/version.c
index b818b01..7eb254c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    477,
+/**/
     476,
 /**/
     475,
