--- app/text_tool.c.orig	Wed Oct 27 08:44:05 1999
+++ app/text_tool.c	Wed Oct 27 08:49:29 1999
@@ -20,6 +20,7 @@
 
 #include <gdk/gdkkeysyms.h>
 #include <gdk/gdk.h>
+#include <gdk/gdkx.h>
 
 #ifdef GDK_WINDOWING_WIN32
 # define POINTS POINTS_win32	/* Guard against clash */
@@ -579,6 +580,8 @@
   int width, height;
   int x, y, k;
   void * pr;
+  XFontStruct *xfs;
+  char *fname;
 
   /*  determine the layer type  */
   if (drawable)
@@ -600,6 +603,14 @@
   gdk_error_warnings = 0;
   gdk_error_code = 0;
   font = gdk_font_load (fontname);
+  xfs = GDK_FONT_XFONT(font);
+  if (xfs->min_byte1 != 0 || xfs->max_byte1 != 0) {
+    gdk_font_unref(font);
+    fname = (char *) g_malloc (strlen(fontname)+3);
+    sprintf(fname, "%s,*", fontname);
+    font = gdk_fontset_load (fname);
+    g_free(fname);
+  }
   gdk_error_warnings = 1;
   if (!font || (gdk_error_code == -1))
   {
@@ -790,11 +801,21 @@
   char *str;
   int nstrs;
   int line_width, line_height;
+  XFontStruct* xfs;
+  char *fname;
 
   /* load the font in */
   gdk_error_warnings = 0;
   gdk_error_code = 0;
   font = gdk_font_load (fontname);
+  xfs = GDK_FONT_XFONT(font);
+  if (xfs->min_byte1 != 0 || xfs->max_byte1 != 0) {
+    gdk_font_unref(font);
+    fname = (char *) g_malloc (strlen(fontname)+3);
+    sprintf(fname, "%s,*", fontname);
+    font = gdk_fontset_load (fname);
+    g_free(fname);
+  }
   gdk_error_warnings = 1;
   if (!font || (gdk_error_code == -1))
     return FALSE;
