diff --git a/src/popupwin.c b/src/popupwin.c
index a957932..a53ae0f 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -71,8 +71,9 @@
     else // "col"
 	n = screen_screencol() + 1 + n;
 
-    if (n < 1)
-	n = 1;
+    // Zero means "not set", use -1 instead.
+    if (n == 0)
+	n = -1;
     return n;
 }
 
@@ -222,7 +223,7 @@
 {
     drag_start_row = mouse_row;
     drag_start_col = mouse_col;
-    if (wp->w_wantline == 0)
+    if (wp->w_wantline <= 0)
 	drag_start_wantline = wp->w_winrow + 1;
     else
 	drag_start_wantline = wp->w_wantline;
@@ -1081,7 +1082,9 @@
     int		org_leftoff = wp->w_popup_leftoff;
     int		minwidth;
     int		wantline = wp->w_wantline;  // adjusted for textprop
+    int		use_wantline = wantline != 0;
     int		wantcol = wp->w_wantcol;    // adjusted for textprop
+    int		use_wantcol = wantcol != 0;
 
     wp->w_winrow = 0;
     wp->w_wincol = 0;
@@ -1097,6 +1100,11 @@
     // If no line was specified default to vertical centering.
     if (wantline == 0)
 	center_vert = TRUE;
+    else if (wantline < 0)
+	// If "wantline" is negative it actually means zero.
+	wantline = 0;
+    if (wantcol < 0)
+	wantcol = 0;
 
     if (wp->w_popup_prop_type > 0 && win_valid(wp->w_popup_prop_win))
     {
@@ -1161,7 +1169,7 @@
     }
     else
     {
-	if (wantline > 0 && (wp->w_popup_pos == POPPOS_TOPLEFT
+	if (use_wantline && (wp->w_popup_pos == POPPOS_TOPLEFT
 		|| wp->w_popup_pos == POPPOS_TOPRIGHT))
 	{
 	    wp->w_winrow = wantline - 1;
@@ -1169,7 +1177,7 @@
 		wp->w_winrow = Rows - 1;
 	}
 
-	if (wantcol == 0)
+	if (!use_wantcol)
 	    center_hor = TRUE;
 	else if (wantcol > 0 && (wp->w_popup_pos == POPPOS_TOPLEFT
 		|| wp->w_popup_pos == POPPOS_BOTLEFT))
@@ -1372,8 +1380,8 @@
 	    // bottom aligned: may move down
 	    wp->w_winrow = wantline - (wp->w_height + extra_height);
 	else
-	    // not enough space, make top aligned
-	    wp->w_winrow = wantline + 1;
+	    // Not enough space, make top aligned.
+	    wp->w_winrow = (wantline < 0 ? 0 : wantline) + 1;
     }
     if (wp->w_winrow >= Rows)
 	wp->w_winrow = Rows - 1;
