I'm using MSVC 7.1. According to http://en.wikipedia.org/wiki/NaN, it looks like 'nan=nan' should return false, so your C compiler (and hence the melted code) is wrong. I know that having 'nan=nan' returning false violates a lot of assertions in Eiffel code, but I think that we are better off following IEEE 754 specification and rewrite our assertions accordingly than inventing a new specification incompatible with the rest of the world. But I guess this could be discussed at ECMA. Anyway, it looks like, according to what Alexander showed us, I'm using the default option (i.e. /fp is assumed to be 'precise') and you're not.