+2009-06-18 Andreas Schwab <aschwab@redhat.com>
+
+ * xdisp.c (redisplay_internal): Check that the frame is still
+ live after redisplay of its windows.
+ (redisplay_windows): Check that the window is still live.
+
2009-06-17 Andreas Schwab <schwab@linux-m68k.org>
* coding.c (detect_coding_utf_16): Fix previous change.
if (FRAME_VISIBLE_P (f) && !FRAME_OBSCURED_P (f))
redisplay_windows (FRAME_ROOT_WINDOW (f));
+ /* The X error handler may have deleted that frame. */
+ if (!FRAME_LIVE_P (f))
+ continue;
+
/* Any scroll bars which redisplay_windows should have
nuked should now go away. */
if (FRAME_TERMINAL (f)->judge_scroll_bars_hook)
redisplay_windows (w->hchild);
else if (!NILP (w->vchild))
redisplay_windows (w->vchild);
- else
+ else if (!NILP (w->buffer))
{
displayed_buffer = XBUFFER (w->buffer);
/* Use list_of_error, not Qerror, so that