> The problem is that even though you're unbinding the old one and > attaching a new one, the new one will still be executed, since we're > still within a 'keydown' event.
You're exactly right. Thanks for taking a look. I found a way to rewrite things so that the functions doesn't have to call itself, and now things work as expected. Aaron