diff --git a/src/popupwin.c b/src/popupwin.c
index 3b808e2..e1c21ac 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -611,7 +611,7 @@
     int	    sign_id = 0;
     char_u  *sign_name = popup_get_sign_name(wp);
 
-    buf_delete_signs(wp->w_buffer, (char_u *)"popupmenu");
+    buf_delete_signs(wp->w_buffer, (char_u *)"PopUpMenu");
 
     if ((wp->w_popup_flags & POPF_CURSORLINE) != 0)
     {
@@ -626,7 +626,7 @@
 	    sign_define_by_name(sign_name, NULL, (char_u *)linehl, NULL, NULL);
 	}
 
-	sign_place(&sign_id, (char_u *)"popupmenu", sign_name,
+	sign_place(&sign_id, (char_u *)"PopUpMenu", sign_name,
 			       wp->w_buffer, wp->w_cursor.lnum, SIGN_DEF_PRIO);
 	redraw_win_later(wp, NOT_VALID);
     }
diff --git a/src/sign.c b/src/sign.c
index 134edf0..f3a1f9d 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -138,7 +138,20 @@
     return ((group != NULL && STRCMP(group, "*") == 0)
 	    || (group == NULL && sign->se_group == NULL)
 	    || (group != NULL && sign->se_group != NULL
-				 && STRCMP(group, sign->se_group->sg_name) == 0));
+			      && STRCMP(group, sign->se_group->sg_name) == 0));
+}
+
+/*
+ * Return TRUE if "sign" is to be displayed in window "wp".
+ * If the group name starts with "PopUp" it only shows in a popup window.
+ */
+    static int
+sign_group_for_window(sign_entry_T *sign, win_T *wp)
+{
+    int for_popup = sign->se_group != NULL
+			&& STRNCMP("PopUp", sign->se_group->sg_name, 5) == 0;
+
+    return WIN_IS_POPUP(wp) ? for_popup : !for_popup;
 }
 
 /*
@@ -484,8 +497,7 @@
 
 	if (sign->se_lnum == lnum
 # ifdef FEAT_TEXT_PROP
-		&& sign_in_group(sign, (char_u *)"popupmenu")
-					  == (WIN_IS_POPUP(wp) ? TRUE : FALSE)
+		&& sign_group_for_window(sign, wp)
 # endif
 		)
 	{
@@ -2645,8 +2657,7 @@
     sign_entry_T *sign = wp->w_buffer->b_signlist;
 
 # ifdef FEAT_TEXT_PROP
-    while (sign != NULL && sign_in_group(sign, (char_u *)"popupmenu")
-					  == (WIN_IS_POPUP(wp) ? FALSE : TRUE))
+    while (sign != NULL && !sign_group_for_window(sign, wp))
 	sign = sign->se_next;
 # endif
     return sign;
diff --git a/src/testdir/dumps/Test_popupwin_sign_1.dump b/src/testdir/dumps/Test_popupwin_sign_1.dump
new file mode 100644
index 0000000..59cc904
--- /dev/null
+++ b/src/testdir/dumps/Test_popupwin_sign_1.dump
@@ -0,0 +1,10 @@
+|>+0#e000002#ffffff0@1>0+0#ffffff16#ff404010| @71
+| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0| @71
+| +0#0000e05#a8a8a8255@1|2+0#0000000#ffffff0| @71
+| +0#0000e05#a8a8a8255@1|3+0#0000000#ffffff0| @23|#+0#ffffff16#ff404010|!|h+0#0000001#ffff4012|e|l@1|o| @12| +0#0000000#ffffff0@27
+| +0#0000e05#a8a8a8255@1|4+0#0000000#ffffff0| @23| +0#0000e05#a8a8a8255@1|b+0#0000001#ffd7ff255|r|i|g|h|t| @11| +0#0000000#ffffff0@27
+| +0#0000e05#a8a8a8255@1|5+0#0000000#ffffff0| @23| +0#0000e05#a8a8a8255@1|w+0#0000001#ffd7ff255|o|r|l|d| @12| +0#0000000#ffffff0@27
+| +0#0000e05#a8a8a8255@1|6+0#0000000#ffffff0| @71
+| +0#0000e05#a8a8a8255@1|7+0#0000000#ffffff0| @71
+| +0#0000e05#a8a8a8255@1|8+0#0000000#ffffff0| @71
+@57|1|,|1| @10|T|o|p| 
diff --git a/src/version.c b/src/version.c
index 5747085..5833f38 100644
--- a/src/version.c
+++ b/src/version.c
@@ -738,6 +738,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2362,
+/**/
     2361,
 /**/
     2360,
