This is a report from Martin on emacs-devel. With master, the attached diff from Martin applied, and having loaded tm.el, as attached, Martin writes: With my latest patch and tty-child-frames.el, doing C-l M-l and C-M-l to get me three child frames, clicking into the yellow frame and trying to change its buffer by clicking at the *Messages* menu item I get Program received signal SIGSEGV, Segmentation fault. 0x000000000054a24e in FACE_FROM_ID (f=0x26306a68, id=11) at ../../src/frame.h:1631 1631 eassert (0 <= id && id < FRAME_FACE_CACHE (f)->used); (gdb) bt> > TTY menus implemented entirely in Lisp. Requires an up-to-date master > containing x-popup-menu-function. > #0 0x000000000054a24e in FACE_FROM_ID (f=0x26306a68, id=11) at ../../src/frame.h:1631 #1 0x000000000054c68d in tty_write_glyphs (f=0x261d3d50, string=0x7fb40c68c950, len=40) at ../../src/term.c:793 #2 0x0000000000557e29 in write_glyphs (f=0x261d3d50, string=0x7fb40c68c6e8, len=40) at ../../src/terminal.c:182 #3 0x000000000042de40 in write_row (f=0x261d3d50, vpos=11, updating_menu_p=false) at ../../src/dispnew.c:6114 #4 0x000000000042be22 in write_matrix (f=0x261d3d50, inhibit_id_p=true, updating_menu_p=false) at ../../src/dispnew.c:5706 #5 0x0000000000427661 in combine_updates_for_frame (f=0x261d3d50, inhibit_scrolling=true) at ../../src/dispnew.c:4009 #6 0x000000000047b36c in echo_area_display (update_frame_p=true) at ../../src/xdisp.c:13560 #7 0x0000000000476da6 in message3_nolog (m=XIL(0)) at ../../src/xdisp.c:12458 #8 0x0000000000476a62 in message3 (m=XIL(0)) at ../../src/xdisp.c:12388 #9 0x0000000000476e1c in message1 (m=0x0) at ../../src/xdisp.c:12477 #10 0x00000000006c39e6 in Fmessage (nargs=1, args=0x7fb40bdff278) at ../../src/editfns.c:3122 #11 0x00000000006d55a7 in funcall_subr (subr=0x8bf4a0 , numargs=1, args=0x7fb40bdff278) at ../../src/eval.c:3161 #12 0x000000000073363e in exec_byte_code (fun=XIL(0x7fb40c8c8c65), args_template=1025, nargs=4, args=0x7ffe48fde4a8) at ../../src/bytecode.c:812 #13 0x00000000006d59c0 in funcall_lambda (fun=XIL(0x7fb40c8c8c65), nargs=4, arg_vector=0x7ffe48fde488) at ../../src/eval.c:3229 #14 0x00000000006d4d5c in funcall_general (fun=XIL(0x7fb40c8c8c65), numargs=4, args=0x7ffe48fde488) at ../../src/eval.c:3021 #15 0x00000000006d501d in Ffuncall (nargs=5, args=0x7ffe48fde480) at ../../src/eval.c:3070 #16 0x00000000006d44b0 in Fapply (nargs=2, args=0x7ffe48fde540) at ../../src/eval.c:2742 #17 0x00000000006d3941 in eval_sub (form=XIL(0x7fb40c6426a3)) at ../../src/eval.c:2547 #18 0x00000000006ce5ec in Fprogn (body=XIL(0)) at ../../src/eval.c:439 #19 0x00000000006d0184 in Flet (args=XIL(0x7fb40c640453)) at ../../src/eval.c:1105 #20 0x00000000006d375d in eval_sub (form=XIL(0x7fb40c640443)) at ../../src/eval.c:2526 #21 0x00000000006ce5ec in Fprogn (body=XIL(0)) at ../../src/eval.c:439 #22 0x00000000006d5ecf in funcall_lambda (fun=XIL(0x262dacd5), nargs=5, arg_vector=0x7ffe48fdea08) at ../../src/eval.c:3327 #23 0x00000000006d4d5c in funcall_general (fun=XIL(0x262dacd5), numargs=5, args=0x7ffe48fdea08) at ../../src/eval.c:3021 #24 0x00000000006d501d in Ffuncall (nargs=6, args=0x7ffe48fdea00) at ../../src/eval.c:3070 #25 0x00000000006d44b0 in Fapply (nargs=3, args=0x7fb40bdff1e0) at ../../src/eval.c:2742 #26 0x00000000006d55a7 in funcall_subr (subr=0x8c0060 , numargs=3, args=0x7fb40bdff1e0) at ../../src/eval.c:3161 #27 0x000000000073363e in exec_byte_code (fun=XIL(0x26298e35), args_template=128, nargs=4, args=0x7fb40bdff180) at ../../src/bytecode.c:812 #28 0x00000000006d59c0 in funcall_lambda (fun=XIL(0x7fb40cb532c5), nargs=1, arg_vector=0x7ffe48fdf2f0) at ../../src/eval.c:3229 #29 0x00000000006d4d5c in funcall_general (fun=XIL(0x7fb40cb532c5), numargs=1, args=0x7ffe48fdf2f0) at ../../src/eval.c:3021 #30 0x00000000006d501d in Ffuncall (nargs=2, args=0x7ffe48fdf2e8) at ../../src/eval.c:3070 #31 0x00000000006c9728 in Ffuncall_interactively (nargs=2, args=0x7ffe48fdf2e8) at ../../src/callint.c:250 #32 0x00000000006d55a7 in funcall_subr (subr=0x8bf720 , numargs=2, args=0x7ffe48fdf2e8) at ../../src/eval.c:3161 #33 0x00000000006d4d10 in funcall_general (fun=XIL(0x8bf725), numargs=2, args=0x7ffe48fdf2e8) at ../../src/eval.c:3017 #34 0x00000000006d501d in Ffuncall (nargs=3, args=0x7ffe48fdf2e0) at ../../src/eval.c:3070 #35 0x00000000006cbd58 in Fcall_interactively (function=XIL(0x7fb40c214010), record_flag=XIL(0), keys=XIL(0x7fb40cfc7cb5)) at ../../src/callint.c:789 #36 0x00000000006d53a7 in funcall_subr (subr=0x8bf760 , numargs=3, args=0x7fb40bdff070) at ../../src/eval.c:3142 #37 0x000000000073363e in exec_byte_code (fun=XIL(0x7fb40cfe60ed), args_template=1025, nargs=1, args=0x7ffe48fdff20) at ../../src/bytecode.c:812 #38 0x00000000006d59c0 in funcall_lambda (fun=XIL(0x7fb40cfe60ed), nargs=1, arg_vector=0x7ffe48fdff18) at ../../src/eval.c:3229 #39 0x00000000006d4d5c in funcall_general (fun=XIL(0x7fb40cfe60ed), numargs=1, args=0x7ffe48fdff18) at ../../src/eval.c:3021 #40 0x00000000006d501d in Ffuncall (nargs=2, args=0x7ffe48fdff10) at ../../src/eval.c:3070 #41 0x00000000005f3b32 in command_loop_1 () at ../../src/keyboard.c:1545 #42 0x00000000006d117b in internal_condition_case (bfun=0x5f32c1 , handlers=XIL(0x90), hfun=0x5f2743 ) at ../../src/eval.c:1602 #43 0x00000000005f2e88 in command_loop_2 (handlers=XIL(0x90)) at ../../src/keyboard.c:1163 #44 0x00000000006d05e5 in internal_catch (tag=XIL(0x12390), func=0x5f2e5e , arg=XIL(0x90)) at ../../src/eval.c:1282 #45 0x00000000005f2e1a in command_loop () at ../../src/keyboard.c:1141 #46 0x00000000005f21e5 in recursive_edit_1 () at ../../src/keyboard.c:749 #47 0x00000000005f2411 in Frecursive_edit () at ../../src/keyboard.c:832 #48 0x00000000005edbf3 in main (argc=5, argv=0x7ffe48fe0388) at ../../src/emacs.c:2558 Lisp Backtrace: "message" (0xbdff278) 0xc8c8c60 PVEC_CLOSURE "apply" (0x48fde540) "let" (0x48fde830) "tm--around-popup-menu" (0x48fdea08) "apply" (0xbdff1e0) "popup-menu" (0xbdff180) "menu-bar-open" (0xbdff110) "menu-bar-open-mouse" (0x48fdf2f0) "funcall-interactively" (0x48fdf2e8) "call-interactively" (0xbdff070) "command-execute" (0x48fdff18) martin