MPlist *iso10646_1_family_list;
 
-  /* List of information about each font.  Keys are font registries,
-     values are (MFontInfo *).  */
-  MPlist *realized_font_list;
-
  /** Modifier bit masks of the display.  */
   int meta_mask;
   int alt_mask;
   /** List of pointers to realized faces on the frame.  */
   MPlist *realized_face_list;
 
+  /* List of information about each font.  Keys are font registries,
+     values are (MFontInfo *).  */
+  MPlist *realized_font_list;
+
   /** List of pointers to realized fontsets on the frame.  */
   MPlist *realized_fontset_list;
 
     }
   M17N_OBJECT_UNREF (disp_info->iso10646_1_family_list);
 
-  MPLIST_DO (plist, disp_info->realized_font_list)
-    mfont__free_realized ((MRealizedFont *) MPLIST_VAL (plist));
-  M17N_OBJECT_UNREF (disp_info->realized_font_list);
-
   if (disp_info->auto_display)
     XCloseDisplay (disp_info->display);
 
     mfont__free_realized_fontset ((MRealizedFontset *) mplist_value (plist));
   M17N_OBJECT_UNREF (device->realized_fontset_list);
 
+  MPLIST_DO (plist, device->realized_font_list)
+    mfont__free_realized ((MRealizedFont *) MPLIST_VAL (plist));
+  M17N_OBJECT_UNREF (device->realized_font_list);
+
   MPLIST_DO (plist, device->realized_face_list)
     {
       MRealizedFace *rface = MPLIST_VAL (plist);
        {
          XGlyphInfo extents;
 
-         XftGlyphExtents (FRAME_DISPLAY (rfont->frame),
+         XftGlyphExtents (FRAME_DISPLAY (gstring->frame),
                           font_info->font_aa, &g->code, 1, &extents);
          g->lbearing = - extents.x;
          g->rbearing = extents.width - extents.x;
       disp_info->font_registry_list = mplist ();
       disp_info->iso8859_1_family_list = mplist ();
       disp_info->iso10646_1_family_list = mplist ();
-      disp_info->realized_font_list = mplist ();
       find_modifier_bits (disp_info);
       mplist_add (display_info_list, Mt, disp_info);
     }  
       device->depth = depth;
       device->cmap = cmap;
       device->realized_face_list = mplist ();
+      device->realized_font_list = mplist ();
       device->realized_fontset_list = mplist ();
       device->gc_list = mplist ();
       values.foreground = BlackPixel (display, screen_num);
 #elif HAVE_FREETYPE
   mplist_add (frame->font_driver_list, Mfreetype, &mfont__ft_driver);
 #endif
-  frame->realized_font_list = disp_info->realized_font_list;
+  frame->realized_font_list = device->realized_font_list;
   frame->realized_face_list = device->realized_face_list;
   frame->realized_fontset_list = device->realized_fontset_list;