While reading the source, I noticed in bytecode.c that: /* Inline the most common case. */ if (SYMBOLP (sym) && !EQ (val, Qunbound) && *!XSYMBOL (sym)->u.s.redirect* && !SYMBOL_TRAPPED_WRITE_P (sym)) SET_SYMBOL_VAL (XSYMBOL (sym), val); should be: /* Inline the most common case. */ if (SYMBOLP (sym) && !EQ (val, Qunbound) && *XSYMBOL (sym)->u.s.redirect == SYMBOL_PLAINVAL* && !SYMBOL_TRAPPED_WRITE_P (sym)) SET_SYMBOL_VAL (XSYMBOL (sym), val); As it is, the inline case is never run, since "redirect" is always non-zero. Since I'm new to emacs internals, I don't know how to benchmark to work out if this makes a noticable performance difference. :) Thanks, Simon.