Comparing floating point, I understand. If you are careful to stick to IEEE and are aware of the pitfalls, you should be ok.
Non-deterministic behaviour, where putting the same calculation on each side of the == operation gives you a false... well, that's a little odd. Anyway, cause identified and fixed, and I've raised the flag that our MS stuff may or may not be correct.