Added and/or operator test to POSIX special case processing, so now: $ test ! "abc" -o "abc" evaluates to true. The correct fix is probably to yank the superfluous special case code, but I don't have time to verify the correctness of the result.