My mistake, #1 is also XEmacs code. The crash in libx11 is clearly caused by misuse of the API. Here's the function XFontsOfFontSet:
int XFontsOfFontSet(font_set, font_struct_list, font_name_list) XFontSet font_set; XFontStruct ***font_struct_list; char ***font_name_list; { *font_name_list = font_set->core.font_info.font_name_list; *font_struct_list = font_set->core.font_info.font_struct_list; return font_set->core.font_info.num_font; } The font_set being passed in is NULL. The backtrace leaves out the function "extract_font_extents" which is actually making the call to XFontsOfFontSet from lwlib/xlwmenu.c:2928. Here's the function with preprocessor directives applied: static void extract_font_extents (XlwMenuWidget mw) { XFontStruct **fontstruct_list; char **fontname_list; XFontStruct *font; int fontcount = XFontsOfFontSet(mw->menu.font_set, &fontstruct_list, &fontname_list); mw->menu.font_ascent = 0; mw->menu.font_descent = 0; while (--fontcount >= 0) { font = fontstruct_list[fontcount]; if (font->ascent > (int) mw->menu.font_ascent) mw->menu.font_ascent = font->ascent; if (font->descent > (int) mw->menu.font_descent) mw->menu.font_descent = font->descent; } } Anyways, "mw" is being passed in to XlwMenuInitialize as the parameter "new". Its menu.font_set is NULL and XlwMenuInitialize makes no effect to set it to something, so clearly it's expecting it to be initialized elsewhere. Not knowing the design of the software, that's as far as I can go. Please fix it, or at least forward it upstream. For completeness, I've included some more debugging info showing the contents of "mw" and "mw->menu": (gdb) p *(XlwMenuWidget)new $1 = {core = {self = 0x8598870, widget_class = 0x822f8a0, parent = 0x85671f8, xrm_name = 423, being_destroyed = 0 '\0', destroy_callbacks = 0x0, constraints = 0x0, x = 0, y = 0, width = 0, height = 0, border_width = 1, managed = 0 '\0', sensitive = 1 '\001', ancestor_sensitive = 1 '\001', event_table = 0x0, tm = {translations = 0x8598848, proc_table = 0x0, current_state = 0x0, lastEventTime = 0}, accelerators = 0x0, border_pixel = 0, border_pixmap = 2, popup_list = 0x0, num_popups = 0, name = 0x832d49e "menubar", screen = 0x8417048, colormap = 32, window = 0, depth = 24, background_pixel = 13421772, background_pixmap = 2, visible = 1 '\001', mapped_when_managed = 1 '\001'}, menu = { font = 0x85989a0, font_set = 0x0, font_ascent = 0, font_descent = 0, foreground = 5066061, button_foreground = 255, highlight_foreground = 16711680, title_foreground = 11546720, margin = 2, horizontal_margin = 2, vertical_margin = 1, column_spacing = 4, shadow_thickness = 2, indicator_size = 0, top_shadow_color = 16119285, bottom_shadow_color = 8026746, select_color = 2263842, top_shadow_pixmap = 0, bottom_shadow_pixmap = 0, cursor_shape = 50331659, open = 0x0, select = 0x0, contents = 0x8579228, horizontal = 1, use_backing_store = 0 '\0', bounce_down = 1 '\001', lookup_labels = 0 '\0', old_depth = 0, old_stack = 0x0, old_stack_length = 0, new_depth = 0, new_stack = 0x0, new_stack_length = 0, windows = 0x0, windows_length = 0, foreground_gc = 0x859a1f8, button_gc = 0x859ab00, background_gc = 0x859a8e8, inactive_gc = 0x85990d0, inactive_button_gc = 0x859c2b0, shadow_top_gc = 0x859c328, shadow_bottom_gc = 0x859c3a0, select_gc = 0x8599038, highlight_gc = 0x859a9d0, title_gc = 0x859aa68, cursor = 50331659, popped_up = 0 '\0', gray_pixmap = 50331660, pointer_grabbed = 0 '\0', next_release_must_exit = 0 '\0', menu_post_time = 0, menu_bounce_time = 0, last_selected_val = 0x0}} (gdb) p ((XlwMenuWidget)new)->menu $2 = {font = 0x85989a0, font_set = 0x0, font_ascent = 0, font_descent = 0, foreground = 5066061, button_foreground = 255, highlight_foreground = 16711680, title_foreground = 11546720, margin = 2, horizontal_margin = 2, vertical_margin = 1, column_spacing = 4, shadow_thickness = 2, indicator_size = 0, top_shadow_color = 16119285, bottom_shadow_color = 8026746, select_color = 2263842, top_shadow_pixmap = 0, bottom_shadow_pixmap = 0, cursor_shape = 50331659, open = 0x0, select = 0x0, contents = 0x8579228, horizontal = 1, use_backing_store = 0 '\0', bounce_down = 1 '\001', lookup_labels = 0 '\0', old_depth = 0, old_stack = 0x0, old_stack_length = 0, new_depth = 0, new_stack = 0x0, new_stack_length = 0, windows = 0x0, windows_length = 0, foreground_gc = 0x859a1f8, button_gc = 0x859ab00, background_gc = 0x859a8e8, inactive_gc = 0x85990d0, inactive_button_gc = 0x859c2b0, shadow_top_gc = 0x859c328, shadow_bottom_gc = 0x859c3a0, select_gc = 0x8599038, highlight_gc = 0x859a9d0, title_gc = 0x859aa68, cursor = 50331659, popped_up = 0 '\0', gray_pixmap = 50331660, pointer_grabbed = 0 '\0', next_release_must_exit = 0 '\0', menu_post_time = 0, menu_bounce_time = 0, last_selected_val = 0x0} (gdb) p ((XlwMenuWidget)new)->menu.font_set $3 = (XFontSet) 0x0 Thanks, Nick Lewycky -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]