diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index ad30e58..add61ac 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -85,11 +85,11 @@
 
 IMPLEMENTATION:
 - Code is in popupwin.c
-- Implement the "pos" option.
 - Implement filter.
   Check that popup_close() works in the filter.
+- Implement padding
+- Implement border
 - Handle screen resize in screenalloc().
-- show [Popup] instead of [Scratch] in ":ls!"
 - Make redrawing more efficient and avoid flicker.
     Store popup info in a mask, use the mask in screen_line()
     Fix redrawing problem with completion.
@@ -287,6 +287,8 @@
 	call setwinvar(winid, '&wrap', 0)
 And options can be set on the buffer with `setbufvar()`, e.g.: >
 	call setbufvar(winbufnr(winid), '&filetype', 'java')
+Note that this does not trigger autocommands.  Use `win_execute()` if you do
+need them.
 
 
 POPUP_CREATE() ARGUMENTS				*popup_create-usage*
@@ -320,7 +322,6 @@
 			Alternatively "center" can be used to position the
 			popup in the center of the Vim window, in which case
 			"line" and "col" are ignored.
-			{not implemented yet}
 	flip		when TRUE (the default) and the position is relative
 			to the cursor, flip to below or above the cursor to
 			avoid overlap with the |popupmenu-completion| or
@@ -342,7 +343,6 @@
 			popup, on top of any border
 			{not implemented yet}
 	wrap		TRUE to make the lines wrap (default TRUE)
-			{not implemented yet}
 	highlight	highlight group name to use for the text, stored in
 			the 'wincolor' option
 	padding		list with numbers, defining the padding
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 187d00e..dca9dbf 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 8.1.  Last change: 2019 May 18
+*windows.txt*   For Vim version 8.1.  Last change: 2019 May 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1030,6 +1030,13 @@
 		thus you can always go to a specific buffer with ":buffer N"
 		or "N CTRL-^", where N is the buffer number.
 
+		For the file name these special values are used:
+			[Prompt]	|prompt-buffer|
+			[Popup]		buffer of a |popup-window|
+			[Scratch]	'buftype' is "nofile"
+			[No Name]	no file name specified
+		For a |terminal-window| buffer the status is used.
+
 		Indicators (chars in the same column are mutually exclusive):
 		u	an unlisted buffer (only displayed when [!] is used)
 			   |unlisted-buffer|
diff --git a/src/buffer.c b/src/buffer.c
index ea61c5a..3bfb639 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5782,6 +5782,10 @@
 	if (bt_prompt(buf))
 	    return (char_u *)_("[Prompt]");
 #endif
+#ifdef FEAT_TEXT_PROP
+	if (bt_popup(buf))
+	    return (char_u *)_("[Popup]");
+#endif
 	return (char_u *)_("[Scratch]");
     }
 
diff --git a/src/popupwin.c b/src/popupwin.c
index ef4609a..f828d91 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -550,6 +550,7 @@
     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);
     }
 }
@@ -566,6 +567,7 @@
     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);
     }
 }
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index c5fdb6e..29d4c15 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -196,12 +196,16 @@
   let line = join(map(range(1, 5), 'screenstring(1, v:val)'), '')
   call assert_equal('world', line)
   call assert_equal(1, popup_getpos(winid).visible)
+  " buffer is still listed and active
+  call assert_match(winbufnr(winid) .. 'u a.*\[Popup\]', execute('ls u'))
 
   call popup_hide(winid)
   redraw
   let line = join(map(range(1, 5), 'screenstring(1, v:val)'), '')
   call assert_equal('hello', line)
   call assert_equal(0, popup_getpos(winid).visible)
+  " buffer is still listed but hidden
+  call assert_match(winbufnr(winid) .. 'u h.*\[Popup\]', execute('ls u'))
 
   call popup_show(winid)
   redraw
diff --git a/src/version.c b/src/version.c
index 2f05cea..9b20fb7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1431,
+/**/
     1430,
 /**/
     1429,
