diff --git a/src/gui_w32.c b/src/gui_w32.c
index 0679ed2..543d5d5 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -3291,6 +3291,7 @@
     char	*p;
     char	*res;
     char	*charset_name;
+    char	*quality_name;
     char	*font_name = lf.lfFaceName;
 
     charset_name = charset_id2name((int)lf.lfCharSet);
@@ -3304,6 +3305,8 @@
 						(char_u **)&font_name, &len);
     }
 #endif
+    quality_name = quality_id2name((int)lf.lfQuality);
+
     res = (char *)alloc((unsigned)(strlen(font_name) + 20
 		    + (charset_name == NULL ? 0 : strlen(charset_name) + 2)));
     if (res != NULL)
@@ -3331,6 +3334,11 @@
 	    STRCAT(p, ":c");
 	    STRCAT(p, charset_name);
 	}
+	if (quality_name != NULL)
+	{
+	    STRCAT(p, ":q");
+	    STRCAT(p, quality_name);
+	}
     }
 
 #ifdef FEAT_MBYTE
diff --git a/src/os_mswin.c b/src/os_mswin.c
index 607fd6a..77582cc 100644
--- a/src/os_mswin.c
+++ b/src/os_mswin.c
@@ -2689,6 +2689,33 @@
     {NULL,		0}
 };
 
+struct quality_pair
+{
+    char	*name;
+    DWORD	quality;
+};
+
+static struct quality_pair
+quality_pairs[] = {
+#ifdef CLEARTYPE_QUALITY
+    {"CLEARTYPE",	CLEARTYPE_QUALITY},
+#endif
+#ifdef ANTIALIASED_QUALITY
+    {"ANTIALIASED",	ANTIALIASED_QUALITY},
+#endif
+#ifdef NOANTIALIASED_QUALITY
+    {"NOANTIALIASED",	NOANTIALIASED_QUALITY},
+#endif
+#ifdef PROOF_QUALITY
+    {"PROOF",		PROOF_QUALITY},
+#endif
+#ifdef PROOF_QUALITY
+    {"DRAFT",		DRAFT_QUALITY},
+#endif
+    {"DEFAULT",		DEFAULT_QUALITY},
+    {NULL,		0}
+};
+
 /*
  * Convert a charset ID to a name.
  * Return NULL when not recognized.
@@ -2704,6 +2731,21 @@
     return cp->name;
 }
 
+/*
+ * Convert a quality ID to a name.
+ * Return NULL when not recognized.
+ */
+    char *
+quality_id2name(DWORD id)
+{
+    struct quality_pair *qp;
+
+    for (qp = quality_pairs; qp->name != NULL; ++qp)
+	if (id == qp->quality)
+	    break;
+    return qp->name;
+}
+
 static const LOGFONT s_lfDefault =
 {
     -12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET,
@@ -2985,6 +3027,26 @@
 		    }
 		    break;
 		}
+	    case 'q':
+		{
+		    struct quality_pair *qp;
+
+		    for (qp = quality_pairs; qp->name != NULL; ++qp)
+			if (STRNCMP(p, qp->name, strlen(qp->name)) == 0)
+			{
+			    lf->lfQuality = qp->quality;
+			    p += strlen(qp->name);
+			    break;
+			}
+		    if (qp->name == NULL && verbose)
+		    {
+			vim_snprintf((char *)IObuff, IOSIZE,
+				_("E244: Illegal quality name \"%s\" in font name \"%s\""), p, name);
+			EMSG(IObuff);
+			break;
+		    }
+		    break;
+		}
 	    default:
 		if (verbose)
 		{
diff --git a/src/proto/os_mswin.pro b/src/proto/os_mswin.pro
index 333ba76..fb2da93 100644
--- a/src/proto/os_mswin.pro
+++ b/src/proto/os_mswin.pro
@@ -49,6 +49,7 @@
 char_u *serverGetReply(HWND server, int *expr_res, int remove, int wait);
 void serverProcessPendingMessages(void);
 char *charset_id2name(int id);
+char *quality_id2name __ARGS((DWORD id));
 int get_logfont(LOGFONT *lf, char_u *name, HDC printer_dc, int verbose);
 void channel_init_winsock(void);
 /* vim: set ft=c : */
diff --git a/src/version.c b/src/version.c
index 58377a4..aefcfae 100644
--- a/src/version.c
+++ b/src/version.c
@@ -749,6 +749,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1705,
+/**/
     1704,
 /**/
     1703,
