diff --git a/src/edit.c b/src/edit.c
index 9162fe6..d944080 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -147,6 +147,9 @@
 #ifdef FEAT_JOB_CHANNEL
     int		cmdchar_todo = cmdchar;
 #endif
+#ifdef FEAT_CONCEAL
+    int		cursor_line_was_concealed;
+#endif
 
     // Remember whether editing was restarted after CTRL-O.
     did_restart_edit = restart_edit;
@@ -222,9 +225,9 @@
     }
 
 #ifdef FEAT_CONCEAL
-    // Check if the cursor line needs redrawing before changing State.  If
-    // 'concealcursor' is "n" it needs to be redrawn without concealing.
-    conceal_check_cursor_line();
+    // Check if the cursor line was concealed before changing State.
+    cursor_line_was_concealed = curwin->w_p_cole > 0
+						&& conceal_cursor_line(curwin);
 #endif
 
     /*
@@ -283,6 +286,12 @@
 
     stop_insert_mode = FALSE;
 
+#ifdef FEAT_CONCEAL
+    // Check if the cursor line needs redrawing after changing State.  If
+    // 'concealcursor' is "n" it needs to be redrawn without concealing.
+    conceal_check_cursor_line(cursor_line_was_concealed);
+#endif
+
     /*
      * Need to recompute the cursor position, it might move when the cursor is
      * on a TAB or special character.
diff --git a/src/normal.c b/src/normal.c
index 18f14ec..56f89f5 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -5747,8 +5747,8 @@
 n_start_visual_mode(int c)
 {
 #ifdef FEAT_CONCEAL
-    // Check for redraw before changing the state.
-    conceal_check_cursor_line();
+    int cursor_line_was_concealed = curwin->w_p_cole > 0
+						&& conceal_cursor_line(curwin);
 #endif
 
     VIsual_mode = c;
@@ -5770,8 +5770,8 @@
 
     setmouse();
 #ifdef FEAT_CONCEAL
-    // Check for redraw after changing the state.
-    conceal_check_cursor_line();
+    // Check if redraw is needed after changing the state.
+    conceal_check_cursor_line(cursor_line_was_concealed);
 #endif
 
     if (p_smd && msg_silent == 0)
diff --git a/src/proto/screen.pro b/src/proto/screen.pro
index fc45fa1..6d1993d 100644
--- a/src/proto/screen.pro
+++ b/src/proto/screen.pro
@@ -1,6 +1,6 @@
 /* screen.c */
 int conceal_cursor_line(win_T *wp);
-void conceal_check_cursor_line(void);
+void conceal_check_cursor_line(int was_concealed);
 int get_wcr_attr(win_T *wp);
 void win_draw_end(win_T *wp, int c1, int c2, int draw_margin, int row, int endrow, hlf_T hl);
 int compute_foldcolumn(win_T *wp, int col);
diff --git a/src/screen.c b/src/screen.c
index 7c27e2c..bfb6bf7 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -83,16 +83,26 @@
 
 /*
  * Check if the cursor line needs to be redrawn because of 'concealcursor'.
+ * To be called after changing the state, "was_concealed" is the value of
+ * "conceal_cursor_line()" before the change.
+ * "
  */
     void
-conceal_check_cursor_line(void)
+conceal_check_cursor_line(int was_concealed)
 {
-    if (curwin->w_p_cole > 0 && conceal_cursor_line(curwin))
+    if (curwin->w_p_cole > 0 && conceal_cursor_line(curwin) != was_concealed)
     {
+	int wcol = curwin->w_wcol;
+
 	need_cursor_line_redraw = TRUE;
 	// Need to recompute cursor column, e.g., when starting Visual mode
 	// without concealing.
 	curs_columns(TRUE);
+
+	// When concealing now w_wcol will be computed wrong, keep the previous
+	// value, it will be updated in win_line().
+	if (!was_concealed)
+	    curwin->w_wcol = wcol;
     }
 }
 #endif
diff --git a/src/testdir/dumps/Test_popupwin_atcursor_pos.dump b/src/testdir/dumps/Test_popupwin_atcursor_pos.dump
index a42b6e6..3a4f0c2 100644
--- a/src/testdir/dumps/Test_popupwin_atcursor_pos.dump
+++ b/src/testdir/dumps/Test_popupwin_atcursor_pos.dump
@@ -1,12 +1,12 @@
 |-+0&#ffffff0@59| @14
 |-@59| @14
-|-@25|%|-@16>@|-@14| @14
+|-@25|%|-@16|@|-@14| @14
 |-@25|f+0#0000001#ffd7ff255|i|R|S|t| |-+0#0000000#ffffff0@6|F+0#0000001#ffd7ff255|i|r|s|t| |-+0#0000000#ffffff0@14| @14
 |-@25|s+0#0000001#ffd7ff255|e|C|O|n|d|-+0#0000000#ffffff0@6|S+0#0000001#ffd7ff255|e|c|o|n|D|-+0#0000000#ffffff0@14| @14
 |-@59| @14
 |-@1|f+0#0000001#ffd7ff255|i|r|s|t| |-+0#0000000#ffffff0@6|F+0#0000001#ffd7ff255|I|r|s|T| |-+0#0000000#ffffff0@38| @14
-|-@1|s+0#0000001#ffd7ff255|e|c|o|n|d|-+0#0000000#ffffff0@6|S+0#0000001#ffd7ff255|E|c|o|N|D|-+0#0000000#ffffff0@38| @14
-|-@1|#|-@16|&|-@38| @14
+|-@1|s+0#0000001#ffd7ff255|e|c|o|n|d|-+0#0000000#ffffff0@6|S+0#0000001#ffd7ff255|E|c|o|N|D|-+0#0000000#ffffff0@6|m+0#0000001#ffd7ff255|a|r|k|-+0#0000000#ffffff0@27| @14
+|-@1|#|-@16|&|-@4| @1>X|-@21| @23
 |-@59| @14
 |-@59| @14
-@57|3|,|4|5| @9|T|o|p| 
+@57|9|,|3|8| @9|T|o|p| 
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 68d7db8..cdfa3a9 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -1462,6 +1462,13 @@
 	      \ moved: range(3),
 	      \ mousemoved: range(3),
 	      \ })
+
+	normal 9G27|Rconcealed  X
+	syn match Hidden /concealed/ conceal
+	set conceallevel=2 concealcursor=n
+	redraw
+	normal 0fX
+	call popup_atcursor('mark', {})
   END
   call writefile(lines, 'XtestPopupAtcursorPos')
   let buf = RunVimInTerminal('-S XtestPopupAtcursorPos', #{rows: 12})
diff --git a/src/ui.c b/src/ui.c
index 65ac626..b3d125c 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -1082,7 +1082,7 @@
 # endif
 
 # ifdef FEAT_CONCEAL
-    conceal_check_cursor_line();
+    conceal_check_cursor_line(FALSE);
 # endif
 }
 
diff --git a/src/version.c b/src/version.c
index 1253251..f60abaf 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3074,
+/**/
     3073,
 /**/
     3072,
