diff --git a/src/popupmnu.c b/src/popupmnu.c
index 6ac121d..d9def36 100644
--- a/src/popupmnu.c
+++ b/src/popupmnu.c
@@ -69,7 +69,7 @@
 /*
  * Show the popup menu with items "array[size]".
  * "array" must remain valid until pum_undisplay() is called!
- * When possible the leftmost character is aligned with screen column "col".
+ * When possible the leftmost character is aligned with cursor column.
  * The menu appears above the screen line "row" or at "row" + "height" - 1.
  */
     void
@@ -83,7 +83,7 @@
     int		max_width;
     int		row;
     int		context_lines;
-    int		col;
+    int		cursor_col;
     int		above_row;
     int		below_row;
     int		redo_count = 0;
@@ -199,10 +199,11 @@
 	/* Calculate column */
 #ifdef FEAT_RIGHTLEFT
 	if (curwin->w_p_rl)
-	    col = curwin->w_wincol + curwin->w_width - curwin->w_wcol - 1;
+	    cursor_col = curwin->w_wincol + curwin->w_width
+							  - curwin->w_wcol - 1;
 	else
 #endif
-	    col = curwin->w_wincol + curwin->w_wcol;
+	    cursor_col = curwin->w_wincol + curwin->w_wcol;
 
 	/* if there are more items than room we need a scrollbar */
 	if (pum_height < size)
@@ -216,15 +217,17 @@
 	if (def_width < max_width)
 	    def_width = max_width;
 
-	if (((col < Columns - p_pw || col < Columns - max_width)
+	if (((cursor_col < Columns - p_pw
+					   || cursor_col < Columns - max_width)
 #ifdef FEAT_RIGHTLEFT
 		    && !curwin->w_p_rl)
-	       || (curwin->w_p_rl && (col > p_pw || col > max_width)
+	       || (curwin->w_p_rl
+			       && (cursor_col > p_pw || cursor_col > max_width)
 #endif
 	   ))
 	{
-	    /* align pum column with "col" */
-	    pum_col = col;
+	    /* align pum with "cursor_col" */
+	    pum_col = cursor_col;
 
 	    /* start with the maximum space available */
 #ifdef FEAT_RIGHTLEFT
@@ -237,33 +240,36 @@
 	    if (pum_width > max_width + pum_kind_width + pum_extra_width + 1
 						&& pum_width > p_pw)
 	    {
-		/* the width is too much, make it narrower */
+		/* the width is more than needed for the items, make it
+		 * narrower */
 		pum_width = max_width + pum_kind_width + pum_extra_width + 1;
 		if (pum_width < p_pw)
 		    pum_width = p_pw;
 	    }
-	    else if (((col > p_pw || col > max_width)
+	    else if (((cursor_col > p_pw || cursor_col > max_width)
 #ifdef FEAT_RIGHTLEFT
 			&& !curwin->w_p_rl)
-		|| (curwin->w_p_rl && (col < Columns - p_pw
-			|| col < Columns - max_width)
+		|| (curwin->w_p_rl && (cursor_col < Columns - p_pw
+			|| cursor_col < Columns - max_width)
 #endif
 		    ))
 	    {
-		/* align right pum edge with "col" */
+		/* align pum edge with "cursor_col" */
 #ifdef FEAT_RIGHTLEFT
 		if (curwin->w_p_rl
 			&& W_ENDCOL(curwin) < max_width + pum_scrollbar + 1)
 		{
-		    pum_col = col + max_width + pum_scrollbar + 1;
+		    pum_col = cursor_col + max_width + pum_scrollbar + 1;
 		    if (pum_col >= Columns)
 			pum_col = Columns - 1;
 		}
 		else if (!curwin->w_p_rl)
 #endif
 		{
-		    if (curwin->w_wincol > Columns - max_width - pum_scrollbar)
+		    if (curwin->w_wincol > Columns - max_width - pum_scrollbar
+							  && max_width <= p_pw)
 		    {
+			/* use full width to end of the screen */
 			pum_col = Columns - max_width - pum_scrollbar;
 			if (pum_col < 0)
 			    pum_col = 0;
diff --git a/src/testdir/dumps/Test_popup_position_04.dump b/src/testdir/dumps/Test_popup_position_04.dump
new file mode 100644
index 0000000..b1a3af2
--- /dev/null
+++ b/src/testdir/dumps/Test_popup_position_04.dump
@@ -0,0 +1,10 @@
+|1+0&#ffffff0|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7||+1&&|1+0&&|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7
+|8|9|_|a| @32||+1&&|8+0&&|9|_|a| @32
+|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7||+1&&|1+0&&|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7
+|8|9|_|b| @32||+1&&|8+0&&|9|_|b| @32
+@12|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5||+1&&| +0&&@11|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5
+|6|7|8|9|_|1|2|3|4|5|6|7|8|9|_|a| @20||+1&&|6+0&&|7|8|9|_|1|2|3|4|5|6|7|8|9|_|a| @20
+|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @9| +0#0000001#e0e0e08|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5
+|~+0#4040ff13#ffffff0| @35||+1#0000000&|~+0#4040ff13&| @9| +0#0000001#ffd7ff255|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5|6|7|8|9|_|1|2|3|4|5
+|~+0#4040ff13#ffffff0| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
diff --git a/src/testdir/screendump.vim b/src/testdir/screendump.vim
index 584f9ac..1016646 100644
--- a/src/testdir/screendump.vim
+++ b/src/testdir/screendump.vim
@@ -48,7 +48,7 @@
 " Stop a Vim running in terminal buffer "buf".
 func StopVimInTerminal(buf)
   call assert_equal("running", term_getstatus(a:buf))
-  call term_sendkeys(a:buf, ":qa!\<cr>")
+  call term_sendkeys(a:buf, "\<Esc>\<Esc>:qa!\<cr>")
   call WaitFor('term_getstatus(' . a:buf . ') == "finished"')
   only!
 endfunc
diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim
index b0024e6..499b08b 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -772,6 +772,15 @@
   call term_sendkeys(buf, "GA\<C-N>")
   call VerifyScreenDump(buf, 'Test_popup_position_03', {'rows': 8})
 
+  " completed text wider than the window and 'pumwidth' smaller than available
+  " space
+  call term_sendkeys(buf, "\<Esc>u")
+  call term_sendkeys(buf, ":set pumwidth=20\<CR>")
+  call term_sendkeys(buf, "ggI123456789_\<Esc>")
+  call term_sendkeys(buf, "jI123456789_\<Esc>")
+  call term_sendkeys(buf, "GA\<C-N>")
+  call VerifyScreenDump(buf, 'Test_popup_position_04', {'rows': 10})
+  
   call term_sendkeys(buf, "\<Esc>u")
   call StopVimInTerminal(buf)
   call delete('Xtest')
diff --git a/src/version.c b/src/version.c
index c75d290..48c21fc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -779,6 +779,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1540,
+/**/
     1539,
 /**/
     1538,
