diff --git a/src/eval.c b/src/eval.c
index 87333c2..f9babb3 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -16627,7 +16627,7 @@
 		    p = highlight_has_attr(id, HL_BOLD, modec);
 		break;
 
-	case 'f':					/* fg[#] */
+	case 'f':					/* fg[#] or font */
 		p = highlight_color(id, what, modec);
 		break;
 
diff --git a/src/syntax.c b/src/syntax.c
index 8d976ea..3f502b7 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -8326,7 +8326,7 @@
     char_u *
 highlight_color(id, what, modec)
     int		id;
-    char_u	*what;	/* "fg", "bg", "sp", "fg#", "bg#" or "sp#" */
+    char_u	*what;	/* "font", "fg", "bg", "sp", "fg#", "bg#" or "sp#" */
     int		modec;	/* 'g' for GUI, 'c' for cterm, 't' for term */
 {
     static char_u	name[20];
@@ -8334,20 +8334,30 @@
     int			fg = FALSE;
 # ifdef FEAT_GUI
     int			sp = FALSE;
+    int			font = FALSE;
 # endif
 
     if (id <= 0 || id > highlight_ga.ga_len)
 	return NULL;
 
-    if (TOLOWER_ASC(what[0]) == 'f')
+    if (TOLOWER_ASC(what[0]) == 'f' && TOLOWER_ASC(what[1]) == 'g')
 	fg = TRUE;
 # ifdef FEAT_GUI
-    else if (TOLOWER_ASC(what[0]) == 's')
+    else if (TOLOWER_ASC(what[0]) == 'f' && TOLOWER_ASC(what[1]) == 'o'
+             && TOLOWER_ASC(what[2]) == 'n' && TOLOWER_ASC(what[3]) == 't')
+	font = TRUE;
+    else if (TOLOWER_ASC(what[0]) == 's' && TOLOWER_ASC(what[1]) == 'p')
 	sp = TRUE;
+    else if (!(TOLOWER_ASC(what[0]) == 'b' && TOLOWER_ASC(what[1]) == 'g'))
+	return NULL;
     if (modec == 'g')
     {
+	/* return font name */
+	if (font)
+	    return HL_TABLE()[id - 1].sg_font_name;
+
 	/* return #RRGGBB form (only possible when GUI is running) */
-	if (gui.in_use && what[1] && what[2] == '#')
+	if (gui.in_use && what[2] == '#')
 	{
 	    guicolor_T		color;
 	    long_u		rgb;
@@ -8374,6 +8384,8 @@
 	    return (HL_TABLE()[id - 1].sg_gui_sp_name);
 	return (HL_TABLE()[id - 1].sg_gui_bg_name);
     }
+    if (font || sp)
+	return NULL;
 # endif
     if (modec == 'c')
     {
diff --git a/src/version.c b/src/version.c
index c9adec1..109532e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -682,6 +682,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    389,
+/**/
     388,
 /**/
     387,
