{
Lisp_Object spec;
spec = safe__eval (true, XCAR (XCDR (elt)));
+ /* The :eval form could delete the frame stored in the
+ iterator, which will cause a crash if we try to
+ access faces and other fields (e.g., FRAME_KBOARD)
+ on that frame. This is a nonsensical thing to do,
+ and signaling an error from redisplay might be
+ dangerous, but we cannot continue with an invalid frame. */
+ if (!FRAME_LIVE_P (it->f))
+ signal_error (":eval deleted the frame being displayed", elt);
n += display_mode_element (it, depth, field_width - n,
precision - n, spec, props,
risky);