I tested on i386/5.1 and it fails there on i386 (basically the test case t_tanh you just added to -current): signbit(d): 0 signbit(f): 1, d = 0.000000, f = -0.000000 So works for float, fails for double. Also fails on sparc64 current :-( Martin