zsh gets mighty confused when you type quickly, and the
select() system call happens to trash the timeout value
(as the manpage says, "consider timeout to be undefined
after select returns").
this happens rarely, but I've seen it happen on a redhat
box (5.1, with a recompiled 2.0.35 kernel).
fix: add "tv.tv_sec = 0;" in Src/zle_main.c, line 479
(around FD_SET(SHTTY, &foofd); if ((tv.tv_usec = cost *
costmult) > 500000) ...
as far as I can see, the bug is still there in the rh6.0
srpm for zsh.
Fixed in zsh-3.0.5-11.src.rpm. Thanks for the patch.