diff --git a/src/text.c b/src/text.c
index 7023df6cb88bee27745ec380a83b9829ddb25b39..0c4c04a025dcb73d19bf2e514f5340e499ff80cf 100644
--- a/src/text.c
+++ b/src/text.c
@@ -2487,11 +2487,6 @@ void do_justify(bool full_justify)
 
     edit_refresh();
 
-    /* If constant cursor position display is on, make sure the current
-     * cursor position will be properly displayed on the statusbar. */
-    if (ISSET(CONST_UPDATE))
-	do_cursorpos(TRUE);
-
     /* Display the shortcut list with UnJustify. */
     uncutfunc->desc = unjust_tag;
     display_main_list();
@@ -2509,6 +2504,11 @@ void do_justify(bool full_justify)
     } while (kbinput == KEY_WINCH);
 #endif
 
+    /* If needed, unset the cursor-position suppression flag, so the cursor
+     * position /will/ be displayed upon a return to the main loop. */
+    if (ISSET(CONST_UPDATE))
+	do_cursorpos(TRUE);
+
     func = func_from_key(&kbinput);
 
     if (func == do_uncut_text