--- a/include/GeographicLib/Constants.hpp	2010-02-08 14:42:36.000000000 +0000
+++ b/include/GeographicLib/Constants.hpp	2010-03-15 03:47:35.000000000 +0000
@@ -111,9 +111,11 @@
     { return ::hypot(x, y); }
     static inline float hypot(float x, float y) throw()
     { return ::hypotf(x, y); }
+#ifndef __NO_LONG_DOUBLE_MATH
     static inline long double hypot(long double x, long double y) throw()
     { return ::hypotl(x, y); }
 #endif
+#endif
 
 #if defined(DOXYGEN) || defined(_MSC_VER)
     /**
@@ -134,9 +136,11 @@
 #else
     static inline double expm1(double x) throw() { return ::expm1(x); }
     static inline float expm1(float x) throw() { return ::expm1f(x); }
+#ifndef __NO_LONG_DOUBLE_MATH
     static inline long double expm1(long double x) throw()
     { return ::expm1l(x); }
 #endif
+#endif
 
 #if defined(DOXYGEN) || defined(_MSC_VER)
     /**
@@ -160,9 +164,11 @@
 #else
     static inline double log1p(double x) throw() { return ::log1p(x); }
     static inline float log1p(float x) throw() { return ::log1pf(x); }
+#ifndef __NO_LONG_DOUBLE_MATH
     static inline long double log1p(long double x) throw()
     { return ::log1pl(x); }
 #endif
+#endif
 
 #if defined(DOXYGEN) || defined(_MSC_VER)
     /**
@@ -178,9 +184,11 @@
 #else
     static inline double asinh(double x) throw() { return ::asinh(x); }
     static inline float asinh(float x) throw() { return ::asinhf(x); }
+#ifndef __NO_LONG_DOUBLE_MATH
     static inline long double asinh(long double x) throw()
     { return ::asinhl(x); }
 #endif
+#endif
 
 #if defined(DOXYGEN) || defined(_MSC_VER)
     /**
@@ -196,9 +204,11 @@
 #else
     static inline double atanh(double x) throw() { return ::atanh(x); }
     static inline float atanh(float x) throw() { return ::atanhf(x); }
+#ifndef __NO_LONG_DOUBLE_MATH
     static inline long double atanh(long double x) throw()
     { return ::atanhl(x); }
 #endif
+#endif
 
 #if defined(DOXYGEN) || defined(_MSC_VER)
     /**
@@ -211,8 +221,10 @@
 #else
     static inline double cbrt(double x) throw() { return ::cbrt(x); }
     static inline float cbrt(float x) throw() { return ::cbrtf(x); }
+#ifndef __NO_LONG_DOUBLE_MATH
     static inline long double cbrt(long double x) throw() { return ::cbrtl(x); }
 #endif
+#endif
 
 #if defined(DOXYGEN)
     /**
