diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index c7c42ab..e563d22 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -360,7 +360,8 @@
 	compl_match_array[i].pum_info = NULL;
 	compl_match_array[i].pum_extra = NULL;
 	compl_match_array[i].pum_kind = NULL;
-	compl_match_array[i].pum_user_hlattr = -1;
+	compl_match_array[i].pum_user_abbr_hlattr = -1;
+	compl_match_array[i].pum_user_kind_hlattr = -1;
     }
 
     // Compute the popup menu starting column
diff --git a/src/insexpand.c b/src/insexpand.c
index a774a33..eb920a7 100644
--- a/src/insexpand.c
+++ b/src/insexpand.c
@@ -100,13 +100,14 @@
 #ifdef FEAT_EVAL
     typval_T	cp_user_data;
 #endif
-    char_u	*cp_fname;	// file containing the match, allocated when
-				// cp_flags has CP_FREE_FNAME
-    int		cp_flags;	// CP_ values
-    int		cp_number;	// sequence number
-    int		cp_score;	// fuzzy match score
-    int		cp_user_hlattr;	// highlight attribute to combine with
-    int		cp_user_kind_hlattr; // highlight attribute for kind
+    char_u	*cp_fname;		// file containing the match, allocated when
+					// cp_flags has CP_FREE_FNAME
+    int		cp_flags;		// CP_ values
+    int		cp_number;		// sequence number
+    int		cp_score;		// fuzzy match score
+    int		cp_user_abbr_hlattr;	// highlight attribute to combine with
+					// for abbr.
+    int		cp_user_kind_hlattr;	// highlight attribute for kind
 };
 
 // values for cp_flags
@@ -772,7 +773,7 @@
     int		cdir,
     int		flags_arg,
     int		adup,		    // accept duplicate match
-    int		user_hlattr,
+    int		user_abbr_hlattr,
     int		user_kind_hlattr)
 {
     compl_T	*match;
@@ -837,7 +838,7 @@
     else
 	match->cp_fname = NULL;
     match->cp_flags = flags;
-    match->cp_user_hlattr = user_hlattr;
+    match->cp_user_abbr_hlattr = user_abbr_hlattr;
     match->cp_user_kind_hlattr = user_kind_hlattr;
 
     if (cptext != NULL)
@@ -1335,7 +1336,7 @@
 	    compl_match_array[i].pum_kind = compl->cp_text[CPT_KIND];
 	    compl_match_array[i].pum_info = compl->cp_text[CPT_INFO];
 	    compl_match_array[i].pum_score = compl->cp_score;
-	    compl_match_array[i].pum_user_hlattr = compl->cp_user_hlattr;
+	    compl_match_array[i].pum_user_abbr_hlattr = compl->cp_user_abbr_hlattr;
 	    compl_match_array[i].pum_user_kind_hlattr = compl->cp_user_kind_hlattr;
 	    if (compl->cp_text[CPT_MENU] != NULL)
 		compl_match_array[i++].pum_extra =
@@ -2863,9 +2864,9 @@
     char_u	*(cptext[CPT_COUNT]);
     typval_T	user_data;
     int		status;
-    char_u	*user_hlname;
+    char_u	*user_abbr_hlname;
+    int		user_abbr_hlattr = -1;
     char_u	*user_kind_hlname;
-    int		user_hlattr = -1;
     int		user_kind_hlattr = -1;
 
     user_data.v_type = VAR_UNKNOWN;
@@ -2877,8 +2878,8 @@
 	cptext[CPT_KIND] = dict_get_string(tv->vval.v_dict, "kind", FALSE);
 	cptext[CPT_INFO] = dict_get_string(tv->vval.v_dict, "info", FALSE);
 
-	user_hlname = dict_get_string(tv->vval.v_dict, "hl_group", FALSE);
-	user_hlattr = get_user_highlight_attr(user_hlname);
+	user_abbr_hlname = dict_get_string(tv->vval.v_dict, "abbr_hlgroup", FALSE);
+	user_abbr_hlattr = get_user_highlight_attr(user_abbr_hlname);
 
 	user_kind_hlname = dict_get_string(tv->vval.v_dict, "kind_hlgroup", FALSE);
 	user_kind_hlattr = get_user_highlight_attr(user_kind_hlname);
@@ -2906,7 +2907,8 @@
 	return FAIL;
     }
     status = ins_compl_add(word, -1, NULL, cptext,
-				     &user_data, dir, flags, dup, user_hlattr, user_kind_hlattr);
+				     &user_data, dir, flags, dup,
+				     user_abbr_hlattr, user_kind_hlattr);
     if (status != OK)
 	clear_tv(&user_data);
     return status;
diff --git a/src/popupmenu.c b/src/popupmenu.c
index 437c6e7..90ffe0e 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -586,6 +586,8 @@
 							    pum_extra_width };
     int		basic_width;  // first item width
     int		last_isabbr = FALSE;
+    int		user_abbr_hlattr, user_kind_hlattr;
+    int		orig_attr = -1;
 
     hlf_T	hlfsNorm[3];
     hlf_T	hlfsSel[3];
@@ -660,10 +662,13 @@
 	    item_type = order[j];
 	    hlf = hlfs[item_type];
 	    attr = highlight_attr[hlf];
-	    if (pum_array[idx].pum_user_hlattr > 0)
-		attr = hl_combine_attr(attr, pum_array[idx].pum_user_hlattr);
-	    if (item_type == CPT_KIND && pum_array[idx].pum_user_kind_hlattr > 0)
-		attr = hl_combine_attr(attr, pum_array[idx].pum_user_kind_hlattr);
+	    orig_attr = attr;
+	    user_abbr_hlattr = pum_array[idx].pum_user_abbr_hlattr;
+	    user_kind_hlattr = pum_array[idx].pum_user_kind_hlattr;
+	    if (item_type == CPT_ABBR && user_abbr_hlattr > 0)
+		attr = hl_combine_attr(attr, user_abbr_hlattr);
+	    if (item_type == CPT_KIND && user_kind_hlattr > 0)
+		attr = hl_combine_attr(attr, user_kind_hlattr);
 	    width = 0;
 	    s = NULL;
 	    p = pum_get_item(idx, item_type);
@@ -678,7 +683,7 @@
 			// Display the text that fits or comes before a Tab.
 			// First convert it to printable characters.
 			char_u	*st;
-			int	*attrs;
+			int	*attrs = NULL;
 			int	saved = *p;
 
 			if (saved != NUL)
@@ -687,9 +692,9 @@
 			if (saved != NUL)
 			    *p = saved;
 
-			int user_hlattr = pum_array[idx].pum_user_hlattr;
-			attrs = pum_compute_text_attrs(st, hlf, user_hlattr);
-
+			if (item_type == CPT_ABBR)
+			    attrs = pum_compute_text_attrs(st, hlf,
+							    user_abbr_hlattr);
 #ifdef FEAT_RIGHTLEFT
 			if (pum_rl)
 			{
@@ -771,7 +776,11 @@
 			    col += width;
 			}
 
-			vim_free(attrs);
+			if (attrs != NULL)
+			{
+			    vim_free(attrs);
+			    attrs = NULL;
+			}
 
 			if (*p != TAB)
 			    break;
@@ -781,13 +790,14 @@
 			if (pum_rl)
 			{
 			    screen_puts_len((char_u *)"  ", 2, row, col - 1,
-									attr);
+								    orig_attr);
 			    col -= 2;
 			}
 			else
 #endif
 			{
-			    screen_puts_len((char_u *)"  ", 2, row, col, attr);
+			    screen_puts_len((char_u *)"  ", 2, row, col,
+								    orig_attr);
 			    col += 2;
 			}
 			totwidth += 2;
@@ -823,7 +833,7 @@
 #endif
 	    {
 		screen_fill(row, row + 1, col, pum_col + basic_width + n,
-							      ' ', ' ', attr);
+							      ' ', ' ', orig_attr);
 		col = pum_col + basic_width + n;
 	    }
 	    totwidth = basic_width + n;
diff --git a/src/structs.h b/src/structs.h
index 79f415d..debc7df 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -4468,14 +4468,14 @@
  */
 typedef struct
 {
-    char_u	*pum_text;	  // main menu text
-    char_u	*pum_kind;	  // extra kind text (may be truncated)
-    char_u	*pum_extra;	  // extra menu text (may be truncated)
-    char_u	*pum_info;	  // extra info
-    int		pum_score;	  // fuzzy match score
-    int		pum_idx;	  // index of item before sorting by score
-    int		pum_user_hlattr;  // highlight attribute to combine with
-    int		pum_user_kind_hlattr; // highlight attribute for kind
+    char_u	*pum_text;		// main menu text
+    char_u	*pum_kind;		// extra kind text (may be truncated)
+    char_u	*pum_extra;		// extra menu text (may be truncated)
+    char_u	*pum_info;		// extra info
+    int		pum_score;		// fuzzy match score
+    int		pum_idx;		// index of item before sorting by score
+    int		pum_user_abbr_hlattr;	// highlight attribute to combine with
+    int		pum_user_kind_hlattr;	// highlight attribute for kind
 } pumitem_T;
 
 /*
@@ -5086,4 +5086,3 @@
 
 #define KEYVALUE_ENTRY(k, v) \
     {(k), (v), STRLEN_LITERAL(v)}
-
diff --git a/src/testdir/dumps/Test_pum_highlights_12.dump b/src/testdir/dumps/Test_pum_highlights_12.dump
index a0d2b49..c7c2001 100644
--- a/src/testdir/dumps/Test_pum_highlights_12.dump
+++ b/src/testdir/dumps/Test_pum_highlights_12.dump
@@ -1,7 +1,7 @@
 |a+0&#ffffff0|w|o|r|d|1> @68
-|a+0#ff404010#e0e0e08|w|o|r|d|1| |W| |e|x|t|r|a| |t|e|x|t| |1| | +0#4040ff13#ffffff0@52
+|a+0#ff404010#e0e0e08|w|o|r|d|1| +0#0000001&|W| |e|x|t|r|a| |t|e|x|t| |1| | +0#4040ff13#ffffff0@52
 |a+0#0000001#ffd7ff255|w|o|r|d|2| |W| |e|x|t|r|a| |t|e|x|t| |2| | +0#4040ff13#ffffff0@52
-|你*0#ff404010#ffd7ff255|好| +&@2|W| |e|x|t|r|a| |t|e|x|t| |3| | +0#4040ff13#ffffff0@52
+|你*0#ff404010#ffd7ff255|好| +0#0000001&@2|W| |e|x|t|r|a| |t|e|x|t| |3| | +0#4040ff13#ffffff0@52
 |~| @73
 |~| @73
 |~| @73
diff --git a/src/testdir/dumps/Test_pum_highlights_13.dump b/src/testdir/dumps/Test_pum_highlights_13.dump
index 34fde12..96a00eb 100644
--- a/src/testdir/dumps/Test_pum_highlights_13.dump
+++ b/src/testdir/dumps/Test_pum_highlights_13.dump
@@ -1,7 +1,7 @@
 |a+0&#ffffff0|w|o|r|d|1> @68
-|a+8#ff404010#e0e0e08|w|o+0&&|r|d|1| |W| |e|x|t|r|a| |t|e|x|t| |1| | +0#4040ff13#ffffff0@52
+|a+8#ff404010#e0e0e08|w|o+0&&|r|d|1| +0#0000001&|W| |e|x|t|r|a| |t|e|x|t| |1| | +0#4040ff13#ffffff0@52
 |a+8#0000e05#ffd7ff255|w|o+0#0000001&|r|d|2| |W| |e|x|t|r|a| |t|e|x|t| |2| | +0#4040ff13#ffffff0@52
-|你*0#ff404010#ffd7ff255|好| +&@2|W| |e|x|t|r|a| |t|e|x|t| |3| | +0#4040ff13#ffffff0@52
+|你*0#ff404010#ffd7ff255|好| +0#0000001&@2|W| |e|x|t|r|a| |t|e|x|t| |3| | +0#4040ff13#ffffff0@52
 |~| @73
 |~| @73
 |~| @73
diff --git a/src/testdir/dumps/Test_pum_highlights_14.dump b/src/testdir/dumps/Test_pum_highlights_14.dump
index f35b4cb..563ee85 100644
--- a/src/testdir/dumps/Test_pum_highlights_14.dump
+++ b/src/testdir/dumps/Test_pum_highlights_14.dump
@@ -1,7 +1,7 @@
 |a+0&#ffffff0|w|o|r|d|2> @68
-|a+8#ff404010#ffd7ff255|w|o+0&&|r|d|1| |W| |e|x|t|r|a| |t|e|x|t| |1| | +0#4040ff13#ffffff0@52
+|a+8#ff404010#ffd7ff255|w|o+0&&|r|d|1| +0#0000001&|W| |e|x|t|r|a| |t|e|x|t| |1| | +0#4040ff13#ffffff0@52
 |a+8#00e0e07#e0e0e08|w|o+0#0000001&|r|d|2| |W| |e|x|t|r|a| |t|e|x|t| |2| | +0#4040ff13#ffffff0@52
-|你*0#ff404010#ffd7ff255|好| +&@2|W| |e|x|t|r|a| |t|e|x|t| |3| | +0#4040ff13#ffffff0@52
+|你*0#ff404010#ffd7ff255|好| +0#0000001&@2|W| |e|x|t|r|a| |t|e|x|t| |3| | +0#4040ff13#ffffff0@52
 |~| @73
 |~| @73
 |~| @73
diff --git a/src/testdir/dumps/Test_pum_highlights_16.dump b/src/testdir/dumps/Test_pum_highlights_16.dump
index fe2b68d..5a8d787 100644
--- a/src/testdir/dumps/Test_pum_highlights_16.dump
+++ b/src/testdir/dumps/Test_pum_highlights_16.dump
@@ -1,7 +1,7 @@
 |a+0&#ffffff0|w|o|r|d|1> @68
-|a+0#ff404010#e0e0e08|w|o|r|d|1| |v+0#ffff4012&|a|r|i|a|b|l|e| |e+0#ff404010&|x|t|r|a| |t|e|x|t| |1| | +0#4040ff13#ffffff0@45
-|a+0#0000001#ffd7ff255|w|o|r|d|2| |f+0#4040ff13&|u|n|c|t|i|o|n| |e+0#0000001&|x|t|r|a| |t|e|x|t| |2| | +0#4040ff13#ffffff0@45
-|你*0#0000001#ffd7ff255|好| +&@2|c+0#40ff4011&|l|a|s@1| @3|e+0#0000001&|x|t|r|a| |t|e|x|t| |3| | +0#4040ff13#ffffff0@45
+|a+0#ff404010#e0e0e08|w|o|r|d|1| +0#0000001&|v+0#ffff4012&|a|r|i|a|b|l|e| +0#0000001&|e|x|t|r|a| |t|e|x|t| |1| | +0#4040ff13#ffffff0@45
+|a+0#0000001#ffd7ff255|w|o|r|d|2| |f+0#4040ff13&|u|n|c|t|i|o|n| +0#0000001&|e|x|t|r|a| |t|e|x|t| |2| | +0#4040ff13#ffffff0@45
+|你*0#0000001#ffd7ff255|好| +&@2|c+0#40ff4011&|l|a|s@1| +0#0000001&@3|e|x|t|r|a| |t|e|x|t| |3| | +0#4040ff13#ffffff0@45
 |~| @73
 |~| @73
 |~| @73
diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim
index a4f6d02..3c748a4 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -1504,7 +1504,7 @@
   call StopVimInTerminal(buf)
 endfunc
 
-func Test_pum_user_hl_group()
+func Test_pum_user_abbr_hlgroup()
   CheckScreendump
   let lines =<< trim END
     func CompleteFunc( findstart, base )
@@ -1513,9 +1513,9 @@
       endif
       return {
             \ 'words': [
-            \ { 'word': 'aword1', 'menu': 'extra text 1', 'kind': 'W', 'hl_group': 'StrikeFake' },
+            \ { 'word': 'aword1', 'menu': 'extra text 1', 'kind': 'W', 'abbr_hlgroup': 'StrikeFake' },
             \ { 'word': 'aword2', 'menu': 'extra text 2', 'kind': 'W', },
-            \ { 'word': '你好', 'menu': 'extra text 3', 'kind': 'W', 'hl_group': 'StrikeFake' },
+            \ { 'word': '你好', 'menu': 'extra text 3', 'kind': 'W', 'abbr_hlgroup': 'StrikeFake' },
             \]}
     endfunc
     set completeopt=menu
@@ -1557,7 +1557,7 @@
       endif
       return {
             \ 'words': [
-            \ { 'word': 'aword1', 'menu': 'extra text 1', 'kind': 'variable', 'kind_hlgroup': 'KindVar', 'hl_group': 'StrikeFake' },
+            \ { 'word': 'aword1', 'menu': 'extra text 1', 'kind': 'variable', 'kind_hlgroup': 'KindVar', 'abbr_hlgroup': 'StrikeFake' },
             \ { 'word': 'aword2', 'menu': 'extra text 2', 'kind': 'function', 'kind_hlgroup': 'KindFunc' },
             \ { 'word': '你好', 'menu': 'extra text 3', 'kind': 'class', 'kind_hlgroup': 'KindClass'  },
             \]}
diff --git a/src/version.c b/src/version.c
index e949908..67c05f3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    771,
+/**/
     770,
 /**/
     769,
