if (region)
     gc = set_region (rface->frame, gc, region);
-  XSetFont (display, gc, ((MXFontInfo *) (rface->rfont->info))->f->fid);
-
-  if (from->code == MCHAR_INVALID_CODE)
+  if (! rface->rfont || from->code == MCHAR_INVALID_CODE)
     {
       int x0 = x;
 
       return;
     }
 
+  XSetFont (display, gc, ((MXFontInfo *) (rface->rfont->info))->f->fid);
   code = (XChar2b *) alloca (sizeof (XChar2b) * (to - from));
   for (i = 0, g = from; g < to; i++, g++)
     {