So avoid frexp() altogether. Rollback to the 5.1 way of computing the hash. I understand there's lot of history behind DirectX problems to the point of "Well, if DX is involved, then it's not our fault" or "Our official position is that ANSI-C doesn't recognize threading or DirectX, therefore it doesn't exist." I get it, I really do. But the truth of the matter is that the precision control can change out from under Lua. Lots of precision issues related to DirectX: http://lua-users.org/cgi-bin/namazu.cgi?query=directx&idxname=lua-l&max=100&result=normal&sort=score How hard is it to write a Guard macro that sets and restores the precision control that evaluates to a no-op on non-windows platforms? http://christian-seiler.de/projekte/fpmath/xpfpa.h -- View this message in context: http://lua.2524044.n2.nabble.com/BUG-lua-5-2-luai-hashnum-bug-with-threads-tp7659173p7659210.html Sent from the Lua-l mailing list archive at Nabble.com.