diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index b80b875..7e56d35 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -87,7 +87,6 @@
 
 IMPLEMENTATION:
 - Why does 'nrformats' leak from the popup window buffer???
-- Option to set first line to display (useful for a preview window)
 - Disable commands, feedkeys(), CTRL-W, etc. in a popup window.
   Use NOT_IN_POPUP_WINDOW for more commands.
 - Add 'balloonpopup': instead of showing text, let the callback open a popup
@@ -396,6 +395,9 @@
 			padding.
 	minwidth	Minimum width of the contents, excluding border and
 			padding.
+	firstline	First buffer line to display.  When larger than one it
+			looks like the text scrolled up.  When out of range
+			the last buffer line will at the top of the window.
 	hidden		When TRUE the popup exists but is not displayed; use
 			`popup_show()` to unhide it.
 			{not implemented yet}
diff --git a/src/popupwin.c b/src/popupwin.c
index d0f106f..5e444ae 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -226,6 +226,10 @@
 	set_string_option_direct_in_win(wp, (char_u *)"wincolor", -1,
 						   str, OPT_FREE|OPT_LOCAL, 0);
 
+    wp->w_firstline = dict_get_number(dict, (char_u *)"firstline");
+    if (wp->w_firstline < 1)
+	wp->w_firstline = 1;
+
     di = dict_find(dict, (char_u *)"wrap", -1);
     if (di != NULL)
     {
@@ -519,10 +523,15 @@
 	maxwidth = wp->w_maxwidth;
     }
 
+    // start at the desired first line
+    wp->w_topline = wp->w_firstline;
+    if (wp->w_topline > wp->w_buffer->b_ml.ml_line_count)
+	wp->w_topline = wp->w_buffer->b_ml.ml_line_count;
+
     // Compute width based on longest text line and the 'wrap' option.
     // TODO: more accurate wrapping
     wp->w_width = 0;
-    for (lnum = 1; lnum <= wp->w_buffer->b_ml.ml_line_count; ++lnum)
+    for (lnum = wp->w_topline; lnum <= wp->w_buffer->b_ml.ml_line_count; ++lnum)
     {
 	int len = vim_strsize(ml_get_buf(wp->w_buffer, lnum, FALSE));
 
@@ -556,6 +565,10 @@
 	}
 	if (wp->w_width < len)
 	    wp->w_width = len;
+	// do not use the width of lines we're not going to show
+	if (wp->w_maxheight > 0 && wp->w_buffer->b_ml.ml_line_count
+			       - wp->w_topline + 1 + wrapped > wp->w_maxheight)
+	    break;
     }
 
     if (wp->w_minwidth > 0 && wp->w_width < wp->w_minwidth)
@@ -573,7 +586,8 @@
 	    wp->w_wincol = wp->w_wantcol - (wp->w_width + extra_width);
     }
 
-    wp->w_height = wp->w_buffer->b_ml.ml_line_count + wrapped;
+    wp->w_height = wp->w_buffer->b_ml.ml_line_count - wp->w_topline
+								 + 1 + wrapped;
     if (wp->w_minheight > 0 && wp->w_height < wp->w_minheight)
 	wp->w_height = wp->w_minheight;
     if (wp->w_maxheight > 0 && wp->w_height > wp->w_maxheight)
@@ -1133,6 +1147,7 @@
 	dict_add_number(dict, "minheight", wp->w_minheight);
 	dict_add_number(dict, "maxheight", wp->w_maxheight);
 	dict_add_number(dict, "maxwidth", wp->w_maxwidth);
+	dict_add_number(dict, "firstline", wp->w_firstline);
 	dict_add_number(dict, "zindex", wp->w_zindex);
 	dict_add_number(dict, "fixed", wp->w_popup_fixed);
 
diff --git a/src/structs.h b/src/structs.h
index 1fd4309..da5ed2e 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -2895,6 +2895,7 @@
     int		w_maxwidth;	    // "maxwidth" for popup window
     int		w_wantline;	    // "line" for popup window
     int		w_wantcol;	    // "col" for popup window
+    int		w_firstline;	    // "firstline" for popup window
     int		w_popup_padding[4]; // popup padding top/right/bot/left
     int		w_popup_border[4];  // popup border top/right/bot/left
     char_u	*w_border_highlight[4];  // popup border highlight
diff --git a/src/testdir/dumps/Test_popupwin_firstline.dump b/src/testdir/dumps/Test_popupwin_firstline.dump
new file mode 100644
index 0000000..276f4e5
--- /dev/null
+++ b/src/testdir/dumps/Test_popupwin_firstline.dump
@@ -0,0 +1,10 @@
+>1+0&#ffffff0| @73
+|2| @73
+|3| @73
+|4| @33|3+0#0000001#ffd7ff255@4| +0#0000000#ffffff0@34
+|5| @33|4+0#0000001#ffd7ff255@1| @2| +0#0000000#ffffff0@34
+|6| @33|5+0#0000001#ffd7ff255| @3| +0#0000000#ffffff0@34
+|7| @33|6+0#0000001#ffd7ff255@4| +0#0000000#ffffff0@34
+|8| @73
+|9| @73
+@57|1|,|1| @10|T|o|p| 
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 9afd840..6def8e4 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -269,6 +269,26 @@
   call delete('XtestPopupCorners')
 endfunc
 
+func Test_popup_firstline()
+  if !CanRunVimInTerminal()
+    throw 'Skipped: cannot make screendumps'
+  endif
+  let lines =<< trim END
+	call setline(1, range(1, 20))
+	call popup_create(['1111', '222222', '33333', '44', '5', '666666', '77777', '888', '9999999999999999'], {
+	      \ 'maxheight': 4,
+	      \ 'firstline': 3,
+	      \ })
+  END
+  call writefile(lines, 'XtestPopupFirstline')
+  let buf = RunVimInTerminal('-S XtestPopupFirstline', {'rows': 10})
+  call VerifyScreenDump(buf, 'Test_popupwin_firstline', {})
+
+  " clean up
+  call StopVimInTerminal(buf)
+  call delete('XtestPopupFirstline')
+endfunc
+
 func Test_popup_in_tab()
   " default popup is local to tab, not visible when in other tab
   let winid = popup_create("text", {})
diff --git a/src/version.c b/src/version.c
index 9c4d068..63eacb0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1523,
+/**/
     1522,
 /**/
     1521,
