Does it make sense for [[ -o invalid@option ]] to exit the shell with an error message? Other shells with '[[' (bash, ksh93 and pdksh/mksh variants) quietly return an unsuccessful status for a non-existent shell option. That behaviour makes more sense to me because of: (1) backwards compatibility: a script that uses '[[' to test if a shell option introduced in a recent zsh is set, would still work on an older zsh that doesn't have that shell option. (2) cross-shell compatibility: treating a non-existent option as not set would make it easier to write a script that works on bash, ksh93, and pdksh/mksh as well as zsh. The attached patch brings zsh in line with those other shells. Up to you to decide what to do with it... - Martijn