fix '^' operator problem