diff --git a/src/buffer.c b/src/buffer.c
index f7ff01f..cba84c6 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2103,7 +2103,7 @@
 	    if (emsg_silent == 0)
 	    {
 		out_flush();
-		ui_delay(3000L, TRUE);	/* make sure it is noticed */
+		ui_delay(3001L, TRUE);	// make sure it is noticed
 	    }
 	    top_file_num = 1;
 	}
diff --git a/src/change.c b/src/change.c
index f254281..e274d5d 100644
--- a/src/change.c
+++ b/src/change.c
@@ -58,7 +58,7 @@
 		)
 	{
 	    out_flush();
-	    ui_delay(1000L, TRUE); // give the user time to think about it
+	    ui_delay(1002L, TRUE); // give the user time to think about it
 	}
 	curbuf->b_did_warn = TRUE;
 	redraw_cmdline = FALSE;	// don't redraw and erase the message
@@ -118,7 +118,7 @@
 	    if (need_wait_return && emsg_silent == 0)
 	    {
 		out_flush();
-		ui_delay(2000L, TRUE);
+		ui_delay(2002L, TRUE);
 		wait_return(TRUE);
 		msg_scroll = save_msg_scroll;
 	    }
diff --git a/src/fileio.c b/src/fileio.c
index 85c5e68..6f8c8f9 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -4191,7 +4191,7 @@
 			if (!focus)
 #endif
 			    /* give the user some time to think about it */
-			    ui_delay(1000L, TRUE);
+			    ui_delay(1004L, TRUE);
 
 			/* don't redraw and erase the message */
 			redraw_cmdline = FALSE;
diff --git a/src/gui.c b/src/gui.c
index 53e073c..94a0503 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -279,7 +279,7 @@
 	}
 
 	if (pipe_error)
-	    ui_delay(300L, TRUE);
+	    ui_delay(301L, TRUE);
 
 	/* When swapping screens we may need to go to the next line, e.g.,
 	 * after a hit-enter prompt and using ":gui". */
diff --git a/src/if_xcmdsrv.c b/src/if_xcmdsrv.c
index 5904914..b884a5b 100644
--- a/src/if_xcmdsrv.c
+++ b/src/if_xcmdsrv.c
@@ -556,7 +556,7 @@
     time_t	    now;
     XEvent	    event;
 
-#define UI_MSEC_DELAY 50
+#define UI_MSEC_DELAY 53
 #define SEND_MSEC_POLL 500
 #ifndef HAVE_SELECT
     struct pollfd   fds;
diff --git a/src/insexpand.c b/src/insexpand.c
index e42819a..121e6ec 100644
--- a/src/insexpand.c
+++ b/src/insexpand.c
@@ -304,7 +304,7 @@
 #ifdef FEAT_EVAL
 	    if (!get_vim_var_nr(VV_TESTING))
 #endif
-		ui_delay(2000L, FALSE);
+		ui_delay(2004L, FALSE);
 	}
 	return FALSE;
     }
diff --git a/src/main.c b/src/main.c
index 2ec5c26..103c53c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2769,7 +2769,7 @@
 	if (parmp->tty_fail && (!stdout_isatty || !input_isatty))
 	    exit(1);
 	if (scriptin[0] == NULL)
-	    ui_delay(2000L, TRUE);
+	    ui_delay(2005L, TRUE);
 	TIME_MSG("Warning delay");
     }
 }
diff --git a/src/normal.c b/src/normal.c
index 76b1fa0..363f539 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -1169,8 +1169,8 @@
 	cursor_on();
 	out_flush();
 	if (msg_scroll || emsg_on_display)
-	    ui_delay(1000L, TRUE);	/* wait at least one second */
-	ui_delay(3000L, FALSE);		/* wait up to three seconds */
+	    ui_delay(1003L, TRUE);	/* wait at least one second */
+	ui_delay(3003L, FALSE);		/* wait up to three seconds */
 	State = save_State;
 
 	msg_scroll = FALSE;
diff --git a/src/screen.c b/src/screen.c
index 8453c8d..edb93f8 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -2406,7 +2406,7 @@
 	    && emsg_silent == 0)
     {
 	out_flush();
-	ui_delay(1000L, TRUE);
+	ui_delay(1006L, TRUE);
 	emsg_on_display = FALSE;
 	if (check_msg_scroll)
 	    msg_scroll = FALSE;
diff --git a/src/search.c b/src/search.c
index 00f0a08..cff289c 100644
--- a/src/search.c
+++ b/src/search.c
@@ -2726,9 +2726,9 @@
 	     * available.
 	     */
 	    if (vim_strchr(p_cpo, CPO_SHOWMATCH) != NULL)
-		ui_delay(p_mat * 100L, TRUE);
+		ui_delay(p_mat * 100L + 8, TRUE);
 	    else if (!char_avail())
-		ui_delay(p_mat * 100L, FALSE);
+		ui_delay(p_mat * 100L + 9, FALSE);
 	    curwin->w_cursor = save_cursor;	/* restore cursor position */
 	    *so = save_so;
 	    *siso = save_siso;
diff --git a/src/tag.c b/src/tag.c
index b72d82b..040325c 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -738,7 +738,7 @@
 		if (ic && !msg_scrolled && msg_silent == 0)
 		{
 		    out_flush();
-		    ui_delay(1000L, TRUE);
+		    ui_delay(1007L, TRUE);
 		}
 	    }
 
@@ -3599,7 +3599,7 @@
 			if (!msg_scrolled && msg_silent == 0)
 			{
 			    out_flush();
-			    ui_delay(1000L, TRUE);
+			    ui_delay(1010L, TRUE);
 			}
 		    }
 		    retval = OK;
diff --git a/src/term.c b/src/term.c
index 94552a6..5b8901e 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1761,7 +1761,7 @@
 	screen_start();	/* don't know where cursor is now */
 	out_flush();
 	if (!is_not_a_term())
-	    ui_delay(2000L, TRUE);
+	    ui_delay(2007L, TRUE);
     }
 }
 
@@ -2810,7 +2810,7 @@
 	    *y = winpos_y;
 	    return OK;
 	}
-	ui_delay(10, FALSE);
+	ui_delay(10L, FALSE);
     }
     /* Do not reset "did_request_winpos", if we timed out the response might
      * still come later and we must consume it. */
diff --git a/src/ui.c b/src/ui.c
index 2d33f7b..cde97c3 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -532,6 +532,9 @@
     void
 ui_delay(long msec, int ignoreinput)
 {
+#ifdef FEAT_JOB_CHANNEL
+    ch_log(NULL, "ui_delay(%ld)", msec);
+#endif
 #ifdef FEAT_GUI
     if (gui.in_use && !ignoreinput)
 	gui_wait_for_chars(msec, typebuf.tb_change_cnt);
diff --git a/src/version.c b/src/version.c
index 2f0316f..cfd5846 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2313,
+/**/
     2312,
 /**/
     2311,
