diff --git a/Numeric/MetricBasis.cpp b/Numeric/MetricBasis.cpp
index 4eb734784efba4f2ed327779da4f045851f5b171..4f7837502161bd536ea709f09e6946b285b22d19 100644
--- a/Numeric/MetricBasis.cpp
+++ b/Numeric/MetricBasis.cpp
@@ -1526,7 +1526,11 @@ double MetricBasis::_R2Dsafe(double q, double p)
 
 double MetricBasis::_R2Dsafe(double a)
 {
-  if (a < 1 || !std::isfinite(a))
+  if (a < 1
+#if !defined(_MSC_VER)
+      || !std::isfinite(a)
+#endif
+      )
     Msg::Error("wrong argument for 2d metric (%g)", a);
   return (a - 1) / (a + 1);
 }