Index: include/msvc/math.h
===================================================================
--- include/msvc/math.h	(revision 678117)
+++ include/msvc/math.h	(working copy)
@@ -139,6 +139,14 @@
 WINPOSIX_EXPORT float tgammaf (float);
 #define tgammal tgamma
 
+#if !defined __cplusplus && defined _MSC_VER && _MSC_VER <= 1310
+KDEWIN32_EXPORT float floorf(float x);
+KDEWIN32_EXPORT float sinf(float x);
+KDEWIN32_EXPORT float logf(float x);
+KDEWIN32_EXPORT float powf(float x, float y);
+KDEWIN32_EXPORT float expf(float x);
+#endif
+
 /* 7.12.9.3 */
 // this is a little bit more complicated - don't raise an exception
 // -> set fpu control word bit 5 so it won't generate one
Index: src/math/math.c
===================================================================
--- src/math/math.c	(revision 678117)
+++ src/math/math.c	(working copy)
@@ -39,3 +39,14 @@
 KDEWIN32_EXPORT union _ieee_rep __SNANL  = { __DOUBLE_SNAN_REP };
 KDEWIN32_EXPORT union _ieee_rep __INFL = { __DOUBLE_INF_REP };
 KDEWIN32_EXPORT union _ieee_rep __DENORML = { __DOUBLE_DENORM_REP };
+
+#if !defined __cplusplus && defined _MSC_VER && _MSC_VER <= 1310
+#include <../include/math.h>
+
+KDEWIN32_EXPORT float floorf(float x) { return ((float)floor((double)x)); }
+KDEWIN32_EXPORT float sinf(float x) {return ((float)sin((double)x)); }
+KDEWIN32_EXPORT float logf(float x) {return ((float)log((double)x)); }
+KDEWIN32_EXPORT float powf(float x, float y) {return ((float)pow((double)x, (double)y)); }
+KDEWIN32_EXPORT float expf(float x) {return ((float)exp((double)x)); }
+
+#endif

