updated for version 7.0105
diff --git a/src/gui_w32.c b/src/gui_w32.c
index c4d8e48..11d0281 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -2206,7 +2206,7 @@
 }
 
     void
-gui_make_popup(char_u *path_name)
+gui_make_popup(char_u *path_name, int mouse_pos)
 {
     vimmenu_T	*menu = gui_find_menu(path_name);
 
@@ -2216,7 +2216,15 @@
 
 	/* Find the position of the current cursor */
 	GetDCOrgEx(s_hdc, &p);
-	if (curwin != NULL)
+	if (mouse_pos)
+	{
+	    int	mx, my;
+
+	    gui_mch_getmouse(&mx, &my);
+	    p.x += mx;
+	    p.y += my;
+	}
+	else if (curwin != NULL)
 	{
 	    p.x += TEXT_X(W_WINCOL(curwin) + curwin->w_wcol + 1);
 	    p.y += TEXT_Y(W_WINROW(curwin) + curwin->w_wrow + 1);