diff --git a/src/popupwin.c b/src/popupwin.c
index 61f447d..cfd2050 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -3699,6 +3699,9 @@
     int	    attr_scroll = 0;
     int	    attr_thumb = 0;
 
+    // hide the cursor until redrawing is done.
+    cursor_off();
+
     // Find the window with the lowest zindex that hasn't been updated yet,
     // so that the window with a higher zindex is drawn later, thus goes on
     // top.
diff --git a/src/terminal.c b/src/terminal.c
index 32e52ee..644cdda 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -1202,6 +1202,7 @@
 	return;
     }
     ch_log(channel, "writing %d bytes to terminal", (int)len);
+    cursor_off();
     term_write_job_output(term, msg, len);
 
 #ifdef FEAT_GUI
@@ -2199,15 +2200,17 @@
 }
 
     static void
-position_cursor(win_T *wp, VTermPos *pos, int add_off UNUSED)
+position_cursor(win_T *wp, VTermPos *pos)
 {
     wp->w_wrow = MIN(pos->row, MAX(0, wp->w_height - 1));
     wp->w_wcol = MIN(pos->col, MAX(0, wp->w_width - 1));
 #ifdef FEAT_PROP_POPUP
-    if (add_off && popup_is_popup(curwin))
+    if (popup_is_popup(wp))
     {
-	wp->w_wrow += popup_top_extra(curwin);
-	wp->w_wcol += popup_left_extra(curwin);
+	if ((wp->w_flags & WFLAG_WROW_OFF_ADDED) == 0)
+	    wp->w_wrow += popup_top_extra(wp);
+	if ((wp->w_flags & WFLAG_WCOL_OFF_ADDED) == 0)
+	    wp->w_wcol += popup_left_extra(wp);
 	wp->w_flags |= WFLAG_WCOL_OFF_ADDED | WFLAG_WROW_OFF_ADDED;
     }
     else
@@ -2524,7 +2527,7 @@
 	if (termwinkey == Ctrl_W)
 	    termwinkey = 0;
     }
-    position_cursor(curwin, &curbuf->b_term->tl_cursor_pos, TRUE);
+    position_cursor(curwin, &curbuf->b_term->tl_cursor_pos);
     may_set_cursor_props(curbuf->b_term);
 
     while (blocking || vpeekc_nomap() != NUL)
@@ -3059,13 +3062,10 @@
     while (for_all_windows_and_curwin(&wp, &did_curwin))
     {
 	if (wp->w_buffer == term->tl_buffer)
-	    position_cursor(wp, &pos, FALSE);
+	    position_cursor(wp, &pos);
     }
     if (term->tl_buffer == curbuf && !term->tl_normal_mode)
-    {
-	may_toggle_cursor(term);
 	update_cursor(term, term->tl_cursor_visible);
-    }
 
     return 1;
 }
@@ -3818,7 +3818,7 @@
 
     // The cursor may have been moved when resizing.
     vterm_state_get_cursorpos(state, &pos);
-    position_cursor(wp, &pos, FALSE);
+    position_cursor(wp, &pos);
 
     for (pos.row = term->tl_dirty_row_start; pos.row < term->tl_dirty_row_end
 					  && pos.row < wp->w_height; ++pos.row)
diff --git a/src/version.c b/src/version.c
index 4165d97..ec0fabc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2064,
+/**/
     2063,
 /**/
     2062,
