the update may have been preempted, so display the echo area
again here. Checking message_cleared_p captures the case that
the echo area should be cleared. */
- if (!NILP (echo_area_buffer[0]) || message_cleared_p)
+ if ((!NILP (echo_area_buffer[0]) && !display_last_displayed_message_p)
+ || (!NILP (echo_area_buffer[1]) && display_last_displayed_message_p)
+ || message_cleared_p)
{
int window_height_changed_p = echo_area_display (0);
must_finish = 1;