diff --git a/reactos/lib/sdk/crt/crt.rbuild b/reactos/lib/sdk/crt/crt.rbuild
index 56c2e9491ef..771ca4b4d0c 100644
--- a/reactos/lib/sdk/crt/crt.rbuild
+++ b/reactos/lib/sdk/crt/crt.rbuild
@@ -86,6 +86,7 @@
cabs.c
cosh.c
div.c
+ fdivbug.c
frexp.c
huge_val.c
hypot.c
@@ -97,7 +98,6 @@
rand.c
s_modf.c
sinh.c
- stubs.c
tanh.c
pow_asm.c
@@ -114,6 +114,7 @@
+ stubs.c
diff --git a/reactos/lib/sdk/crt/math/fdivbug.c b/reactos/lib/sdk/crt/math/fdivbug.c
new file mode 100644
index 00000000000..d790eefc9a4
--- /dev/null
+++ b/reactos/lib/sdk/crt/math/fdivbug.c
@@ -0,0 +1,89 @@
+#include
+#include
+
+/* The following functions are likely workarounds for the pentium fdiv bug */
+void __stdcall _adj_fdiv_m32( unsigned int arg )
+{
+ FIXME("_adj_fdiv_m32 stub\n");
+}
+void __stdcall _adj_fdiv_m32i( int arg )
+{
+ FIXME("_adj_fdiv_m32i stub\n");
+}
+
+void __stdcall _adj_fdiv_m64( unsigned __int64 arg )
+{
+ FIXME("_adj_fdiv_m64 stub\n");
+}
+
+void _adj_fdiv_r(void)
+{
+ FIXME("_adj_fdiv_r stub\n");
+}
+
+void __stdcall _adj_fdivr_m32( unsigned int arg )
+{
+ FIXME("_adj_fdivr_m32i stub\n");
+}
+
+void __stdcall _adj_fdivr_m32i( int arg )
+{
+ FIXME("_adj_fdivr_m32i stub\n");
+}
+
+void __stdcall _adj_fdivr_m64( unsigned __int64 arg )
+{
+ FIXME("_adj_fdivr_m64 stub\n");
+}
+
+void _adj_fpatan(void)
+{
+ FIXME("_adj_fpatan stub\n");
+}
+
+void __stdcall _adj_fdiv_m16i( short arg )
+{
+ FIXME("_adj_fdiv_m16i stub\n");
+}
+
+void __stdcall _adj_fdivr_m16i( short arg )
+{
+ FIXME("_adj_fdivr_m16i stub\n");
+}
+
+void _adj_fprem(void)
+{
+ FIXME("_adj_fprem stub\n");
+}
+
+void _adj_fprem1(void)
+{
+ FIXME("_adj_fprem1 stub\n");
+}
+
+void _adj_fptan(void)
+{
+ FIXME("_adj_fptan stub\n");
+}
+
+void _safe_fdiv(void)
+{
+ FIXME("_safe_fdiv stub\n");
+}
+
+void _safe_fdivr(void)
+{
+ FIXME("_safe_fdivr stub\n");
+}
+
+void _safe_fprem(void)
+{
+ FIXME("_safe_fprem stub\n");
+}
+
+void _safe_fprem1(void)
+{
+ FIXME("_safe_fprem1 stub\n");
+}
+
+