new __isNaN (Scott Schwartz)
diff --git a/src/lib9/fmt/nan64.c b/src/lib9/fmt/nan64.c
index 6e355a2..8fad49e 100644
--- a/src/lib9/fmt/nan64.c
+++ b/src/lib9/fmt/nan64.c
@@ -9,10 +9,6 @@
 #include "fmt.h"
 #include "fmtdef.h"
 
-#if defined (__APPLE__) || (__powerpc__)
-#define _NEEDLL
-#endif
-
 static uvlong uvnan    = ((uvlong)0x7FF00000<<32)|0x00000001;
 static uvlong uvinf    = ((uvlong)0x7FF00000<<32)|0x00000000;
 static uvlong uvneginf = ((uvlong)0xFFF00000<<32)|0x00000000;
@@ -35,7 +31,7 @@
 
 	p = &d;
 	x = *(uvlong*)p;
-	return (ulong)(x>>32)==0x7FF00000 && !__isInf(d, 0);
+	return (ulong)((x>>52)&0x7FF)==0x7FF && !__isInf(d, 0);
 }
 
 double