This is still odd... a cast to boolean still happens. Is the behavior actually altered? An explicit check would make things more clear