I remember a guy sitting at the next desk to me spending a whole week trying to figure out why his Direct3D code crashes. He was blaming buggy ATI drivers.
He figured it out when eventually a bit flip ended up in his _source code_.
function directory_up {
pushd -1
zle reset-prompt
}
zle -N directory-up directory_up
bindkey "\e[5~" directory-up
Ditto for "pushd +0" and PgDn.