If lfFaceName == "", then we patch up the names according to
lfPitchAndFamily.  This is not very pretty I'm afraid...

diff --git a/graphics/x11drv/xfont.c b/graphics/x11drv/xfont.c
index dfde60f..64b863e 100644
--- a/graphics/x11drv/xfont.c
+++ b/graphics/x11drv/xfont.c
@@ -2618,7 +2618,30 @@
 	  pfm->plf->lfWeight, (pfm->plf->lfItalic) ? "Italic" : "" );
 
     pfm->pfi = NULL;
-    if( fm.plf->lfFaceName[0] ) 
+
+    if( !fm.plf->lfFaceName[0] )
+    {
+        switch(fm.plf->lfPitchAndFamily & 0xf0)
+	{
+	case FF_MODERN:
+ 	    strcpy(fm.plf->lfFaceName, "Courier New");
+	    break;
+	case FF_ROMAN:
+	    strcpy(fm.plf->lfFaceName, "Times New Roman");
+	    break;
+	case FF_SWISS:
+	    strcpy(fm.plf->lfFaceName, "Arial");
+	    break;
+	default:
+	    if((fm.plf->lfPitchAndFamily & 0x0f) == FIXED_PITCH)
+	        strcpy(fm.plf->lfFaceName, "Courier New");
+	    else
+	        strcpy(fm.plf->lfFaceName, "Arial");
+	    break;
+	}
+    }
+
+    if( fm.plf->lfFaceName[0] )
     {
         fm.pfr = XFONT_FindFIList( start, fm.plf->lfFaceName);
 	if( fm.pfr ) /* match family */