The way I always looked at it, Simon, was if the array in question was a condition of mine, i.e. it would return a boolean result, it would need coercion. If it needs coercion, you need either the *1, +0 or --. Thus if the array doesn't need coercion, then no mathematical coercion is necessary. Not sure if that helps..