Different logic for defining CHECK(); 16-bit MSC specific define.
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index f37a9bd..0a6aa48 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -39,11 +39,17 @@
 #undef HUGE_VAL
 #endif
 
-#ifdef HUGE_VAL
+#if defined(_MSC_VER) && _MSC_VER < 850
+#define CHECK(x) /* errno is always set VC++ Ver 1.5*/
+#endif
+
+#if defined(HUGE_VAL) && !defined(CHECK)
 #define CHECK(x) if (errno != 0) ; \
 	else if (-HUGE_VAL <= (x) && (x) <= HUGE_VAL) ; \
 	else errno = ERANGE
-#else
+#endif
+
+#ifndef CHECK
 #define CHECK(x) /* Don't know how to check */
 #endif