Hopefully I found the way to catch bogus object in 'function' slot of a Lisp_Symbol. 100% reproducible for me, as of bzr revision 116934. 1. Apply this patch. 2. Compile with -O0 -g3 and --enable-checking. 3. Run 'emacs -Q', then M-x byte-force-recompile /path/to/trunk/lis/org 4. Crash ==> #0 0x000000379220f62b in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37 #1 0x0000000000569aff in terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at ../../trunk/src/emacs.c:382 #2 0x00000000005f089a in die ( msg=0x70f498 "SYMBOLP (sym->s.function) || CONSP (sym->s.function) || COMPILEDP (sym->s.function) || SUBRP (sym->s.function)", file=0x70e420 "../../trunk/src/alloc.c", line=6613) at ../../trunk/src/alloc.c:6913 #3 0x00000000005f00b5 in sweep_symbols () at ../../trunk/src/alloc.c:6610 #4 0x00000000005f03bb in gc_sweep () at ../../trunk/src/alloc.c:6735 #5 0x00000000005ede1e in Fgarbage_collect () at ../../trunk/src/alloc.c:5632 #6 0x0000000000567706 in maybe_gc () at ../../trunk/src/lisp.h:4520 #7 0x000000000065b95f in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=2, args=0x7fff66de7f70) at ../../trunk/src/bytecode.c:954 [...next frames probably irrelevant...] Dmitry