diff --git a/src/math.c b/src/math.c
index eff2edcad35a13b6c7d86c1d49be8398faae943f..63daa58d15c1cde4b803266e9c87a7652e602fe4 100644
--- a/src/math.c
+++ b/src/math.c
@@ -10,10 +10,11 @@
 #define domain_error(msg) \
     mrb_raise(mrb, E_RANGE_ERROR, "Numerical argument is out of domain - " #msg);
 
-#define MATH_TOLERANCE 1E-12
-
 /* math functions not provided under Microsoft Visual C++ */
 #ifdef _MSC_VER
+
+#define MATH_TOLERANCE 1E-12
+
 #define asinh(x) log(x + sqrt(pow(x,2.0) + 1))
 #define acosh(x) log(x + sqrt(pow(x,2.0) - 1))
 #define atanh(x) (log(1+x) - log(1-x))/2.0
@@ -631,7 +632,6 @@ mrb_init_math(mrb_state *mrb)
   struct RClass *mrb_math;
   mrb_math = mrb_define_module(mrb, "Math");
   
-  mrb_define_const(mrb, mrb_math, "TOLERANCE", mrb_float_value(MATH_TOLERANCE));
   #ifdef M_PI
       mrb_define_const(mrb, mrb_math, "PI", mrb_float_value(M_PI));
   #else
diff --git a/test/assert.rb b/test/assert.rb
index 239730cb9363303d42d655cc1f0c8c911fc3ffb2..5cca591874ff1d34cdfddc74624a8c21f1345a1a 100644
--- a/test/assert.rb
+++ b/test/assert.rb
@@ -74,12 +74,12 @@ end
 # Performs fuzzy check for equality on methods returning floats
 # on the basis of the Math::TOLERANCE constant.
 def check_float(a, b)
+  tolerance = 1e-12
   a = a.to_f
   b = b.to_f
   if a.finite? and b.finite?
-    (a-b).abs < Math::TOLERANCE
+    (a-b).abs < tolerance
   else
     true
   end
 end
-