diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index 67ad70b..e766deb 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -289,6 +289,20 @@
 		See the example here: |popup_dialog-example|
 
 
+popup_findinfo()					*popup_findinfo()*
+		Get the |window-ID| for the popup info window, as it used by
+		the popup menu.  See |complete-popup|.  The info popup is
+		hidden when not used, it can be deleted with |popup_clear()|
+		and |popup_close()|.
+		Return zero if there is none.
+
+
+popup_findpreview()					*popup_findpreview()*
+		Get the |window-ID| for the popup preview window.
+		Return zero if there is none.
+
+
+
 popup_getoptions({id})					*popup_getoptions()*
 		Return the {options} for popup {id} in a Dict.
 		A zero value means the option was not set.  For "zindex" the
@@ -336,10 +350,6 @@
 
 		If popup window {id} is not found an empty Dict is returned.
 
-popup_getpreview()					*popup_getpreview()*
-		Get the |window-ID| for the popup preview window.
-		Return zero if there is none.
-
 
 popup_hide({id})						*popup_hide()*
 		If {id} is a displayed popup, hide it now. If the popup has a
diff --git a/src/evalfunc.c b/src/evalfunc.c
index d2a0c64..62938c1 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -702,9 +702,10 @@
     {"popup_dialog",	2, 2, 0,	  f_popup_dialog},
     {"popup_filter_menu", 2, 2, 0,	  f_popup_filter_menu},
     {"popup_filter_yesno", 2, 2, 0,	  f_popup_filter_yesno},
+    {"popup_findinfo",	0, 0, 0,	  f_popup_findinfo},
+    {"popup_findpreview", 0, 0, 0,	  f_popup_findpreview},
     {"popup_getoptions", 1, 1, 0,	  f_popup_getoptions},
     {"popup_getpos",	1, 1, 0,	  f_popup_getpos},
-    {"popup_getpreview", 0, 0, 0,	  f_popup_getpreview},
     {"popup_hide",	1, 1, 0,	  f_popup_hide},
     {"popup_locate",	2, 2, 0,	  f_popup_locate},
     {"popup_menu",	2, 2, 0,	  f_popup_menu},
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index ee3291c..dceb1a7 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -5154,7 +5154,8 @@
 	else if (use_popup)
 	{
 	    wp = popup_find_info_window();
-	    // TODO: set position
+	    if (wp != NULL)
+		popup_show(wp);
 	}
 	else
 # endif
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index a64a0b4..aad1bae 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -5808,7 +5808,7 @@
 	}
 # ifdef FEAT_TEXT_PROP
     // Also when 'previewpopup' is empty, it might have been cleared.
-    popup_close_preview(FALSE);
+    popup_close_preview();
 # endif
 }
 #endif
diff --git a/src/popupmnu.c b/src/popupmnu.c
index 8f35ee5..03eb412 100644
--- a/src/popupmnu.c
+++ b/src/popupmnu.c
@@ -923,8 +923,8 @@
     }
 #if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
     if (!has_info)
-	// close any popup info window
-	popup_close_preview(TRUE);
+	// hide any popup info window
+	popup_hide_info();
 #endif
 
     if (!resized)
@@ -944,8 +944,8 @@
     redraw_tabline = TRUE;
     status_redraw_all();
 #if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
-    // close any popup info window
-    popup_close_preview(TRUE);
+    // hide any popup info window
+    popup_hide_info();
 #endif
 }
 
diff --git a/src/popupwin.c b/src/popupwin.c
index b8fc8fd..482c5a6 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -2058,6 +2058,18 @@
 	popup_close_and_callback(wp, &argvars[1]);
 }
 
+    static void
+popup_hide(win_T *wp)
+{
+    if ((wp->w_popup_flags & POPF_HIDDEN) == 0)
+    {
+	wp->w_popup_flags |= POPF_HIDDEN;
+	--wp->w_buffer->b_nwindows;
+	redraw_all_later(NOT_VALID);
+	popup_mask_refresh = TRUE;
+    }
+}
+
 /*
  * popup_hide({id})
  */
@@ -2067,10 +2079,17 @@
     int		id = (int)tv_get_number(argvars);
     win_T	*wp = find_popup_win(id);
 
-    if (wp != NULL && (wp->w_popup_flags & POPF_HIDDEN) == 0)
+    if (wp != NULL)
+	popup_hide(wp);
+}
+
+    void
+popup_show(win_T *wp)
+{
+    if ((wp->w_popup_flags & POPF_HIDDEN) != 0)
     {
-	wp->w_popup_flags |= POPF_HIDDEN;
-	--wp->w_buffer->b_nwindows;
+	wp->w_popup_flags &= ~POPF_HIDDEN;
+	++wp->w_buffer->b_nwindows;
 	redraw_all_later(NOT_VALID);
 	popup_mask_refresh = TRUE;
     }
@@ -2085,13 +2104,8 @@
     int		id = (int)tv_get_number(argvars);
     win_T	*wp = find_popup_win(id);
 
-    if (wp != NULL && (wp->w_popup_flags & POPF_HIDDEN) != 0)
-    {
-	wp->w_popup_flags &= ~POPF_HIDDEN;
-	++wp->w_buffer->b_nwindows;
-	redraw_all_later(NOT_VALID);
-	popup_mask_refresh = TRUE;
-    }
+    if (wp != NULL)
+	popup_show(wp);
 }
 
 /*
@@ -3314,7 +3328,15 @@
 #endif
 
     void
-f_popup_getpreview(typval_T *argvars UNUSED, typval_T *rettv)
+f_popup_findinfo(typval_T *argvars UNUSED, typval_T *rettv)
+{
+    win_T   *wp = popup_find_info_window();
+
+    rettv->vval.v_number = wp == NULL ? 0 : wp->w_id;
+}
+
+    void
+f_popup_findpreview(typval_T *argvars UNUSED, typval_T *rettv)
 {
     win_T   *wp = popup_find_preview_window();
 
@@ -3355,10 +3377,13 @@
 }
 
 #if defined(FEAT_QUICKFIX) || defined(PROTO)
+/*
+ * Close any preview popup.
+ */
     void
-popup_close_preview(int info)
+popup_close_preview(void)
 {
-    win_T *wp = info ? popup_find_info_window() : popup_find_preview_window();
+    win_T *wp = popup_find_preview_window();
 
     if (wp != NULL)
     {
@@ -3369,6 +3394,18 @@
 	popup_close_and_callback(wp, &res);
     }
 }
+
+/*
+ * Hide the info popup.
+ */
+    void
+popup_hide_info(void)
+{
+    win_T *wp = popup_find_info_window();
+
+    if (wp != NULL)
+	popup_hide(wp);
+}
 #endif
 
 /*
diff --git a/src/proto/popupwin.pro b/src/proto/popupwin.pro
index 9f6d433..0507114 100644
--- a/src/proto/popupwin.pro
+++ b/src/proto/popupwin.pro
@@ -27,6 +27,7 @@
 void f_popup_notification(typval_T *argvars, typval_T *rettv);
 void f_popup_close(typval_T *argvars, typval_T *rettv);
 void f_popup_hide(typval_T *argvars, typval_T *rettv);
+void popup_show(win_T *wp);
 void f_popup_show(typval_T *argvars, typval_T *rettv);
 void f_popup_settext(typval_T *argvars, typval_T *rettv);
 void popup_close(int id);
@@ -49,9 +50,11 @@
 win_T *popup_find_preview_window(void);
 int popup_is_popup(win_T *wp);
 win_T *popup_find_info_window(void);
-void f_popup_getpreview(typval_T *argvars, typval_T *rettv);
+void f_popup_findinfo(typval_T *argvars, typval_T *rettv);
+void f_popup_findpreview(typval_T *argvars, typval_T *rettv);
 int popup_create_preview_window(int info);
-void popup_close_preview(int info);
+void popup_close_preview(void);
+void popup_hide_info(void);
 void popup_set_title(win_T *wp);
 void popup_update_preview_title(void);
 /* vim: set ft=c : */
diff --git a/src/testdir/dumps/Test_popupwin_infopopup_align_3.dump b/src/testdir/dumps/Test_popupwin_infopopup_align_3.dump
index 6effda0..2599094 100644
--- a/src/testdir/dumps/Test_popupwin_infopopup_align_3.dump
+++ b/src/testdir/dumps/Test_popupwin_infopopup_align_3.dump
@@ -8,7 +8,7 @@
 |x| @7| +0#0000001#e0e0e08|w|r|d| @4|W| |e|x|t|r|a| |t|e|x|t| | +0#0000000#ffffff0@43
 |x| @7| +0#0000001#ffd7ff255|a|n|o|t|w|r|d| |W| |e|x|t|r|a| |t|e|x|t| | +0#0000000#ffffff0@43
 |x| @7| +0#0000001#ffd7ff255|n|o|a|w|r|d| @1|W| |e|x|t|r|a| |t|e|x|t| | +0#0000000#ffffff0@43
-|x| @7| +0#0000001#ffd7ff255|t|h|a|t|w|r|d| |W| |e|x|t|r|a| |t|e|x|t| | +0&#e0e0e08|w|o|r|d|s| |a|r|e| |c|o@1|l| | +0#0000000#ffffff0@27
+|x| @7| +0#0000001#ffd7ff255|t|h|a|t|w|r|d| |W| |e|x|t|r|a| |t|e|x|t| | +0#0000000#ffff4012|w|o|r|d|s| |a|r|e| |c|o@1|l| | +0&#ffffff0@27
 |t|e|s|t| |t|e|x|t| |a|w|o|r|d> @59
 |~+0#4040ff13&| @73
 |-+2#0000000&@1| |U|s|e|r| |d|e|f|i|n|e|d| |c|o|m|p|l|e|t|i|o|n| |(|^|U|^|N|^|P|)| |m+0#00e0003&|a|t|c|h| |1| |o|f| |4| +0#0000000&@26
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 1f1f731..6c1ac52 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -2162,7 +2162,7 @@
   call term_sendkeys(buf, "/another\<CR>\<C-W>}")
   call VerifyScreenDump(buf, 'Test_popupwin_previewpopup_2', {})
 
-  call term_sendkeys(buf, ":call popup_move(popup_getpreview(), #{col: 15})\<CR>")
+  call term_sendkeys(buf, ":call popup_move(popup_findpreview(), #{col: 15})\<CR>")
   call term_sendkeys(buf, ":\<CR>")
   call VerifyScreenDump(buf, 'Test_popupwin_previewpopup_3', {})
 
@@ -2245,6 +2245,10 @@
 	      \ }
       endfunc
       call setline(1, 'text text text text text text text ')
+      func ChangeColor()
+	let id = popup_findinfo()
+	call popup_setoptions(id, #{highlight: 'InfoPopup'})
+      endfunc
   END
   return lines
 endfunc
@@ -2313,6 +2317,7 @@
   call VerifyScreenDump(buf, 'Test_popupwin_infopopup_align_2', {})
 
   call term_sendkeys(buf, "\<Esc>")
+  call term_sendkeys(buf, ":call ChangeColor()\<CR>")
   call term_sendkeys(buf, ":call setline(2, ['x']->repeat(10))\<CR>")
   call term_sendkeys(buf, "Gotest text test text\<C-X>\<C-U>")
   call VerifyScreenDump(buf, 'Test_popupwin_infopopup_align_3', {})
diff --git a/src/version.c b/src/version.c
index 6c8bd89..ae0bd9c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1905,
+/**/
     1904,
 /**/
     1903,
