subtle bug, != instead of |=