diff --git a/meson.build b/meson.build
index fcd71a4718f7352fdacd4c2d149a90d31580cac3..7e676a23e4f1aa2558258f5f2383b51e3361f618 100644
--- a/meson.build
+++ b/meson.build
@@ -364,7 +364,8 @@ endif
 ############################################################
 # check for FPU precision control
 #
-if compiler.compiles('''
+if compiler.has_header('fpu_control.h') and \
+   compiler.compiles('''
 #include <fpu_control.h>
 int main(int argc,char **argv)
 {
@@ -382,8 +383,8 @@ return 0;
 	             args : '-lm',	
 		     name : 'FPU control check')  
     message('Enabled FPU control on this CPU')
+    cflags += '-DFPU_CONTROL'
 else
-    cflags += '-DNO_FPU_CONTROL'
     message('Disabled FPU control on this CPU')
 endif
 
diff --git a/src/binary_c_function_macros.h b/src/binary_c_function_macros.h
index c27f8453c99603dbf43c673ed6dc1262e6c50c97..3aace9acb0e859214d837aa60f7acae6c93ad535 100644
--- a/src/binary_c_function_macros.h
+++ b/src/binary_c_function_macros.h
@@ -34,7 +34,7 @@
  * http://christian-seiler.de/projekte/fpmath/
  */
 #if defined FPU_PRECISION && \
-    !defined NO_FPU_CONTROL && \
+    defined FPU_CONTROL && \
     defined _FPU_EXTENDED
     
 #define Set_FPU_precision fpu_control_t fpu_oldcw,fpu_cw;       \
diff --git a/src/binary_c_main.h b/src/binary_c_main.h
index 40180cb0b7415d9ea8eb791eb908afc57fe214a2..f82ff8c2d6f99319f2ea2d13ee654fae2a3ce00f 100644
--- a/src/binary_c_main.h
+++ b/src/binary_c_main.h
@@ -24,9 +24,11 @@
 
 
 #include "binary_c.h"
-#ifdef FPU_PRECISION
+
+#if defined FPU_PRECISION && defined FPU_CONTROL 
 #include <fpu_control.h>
 #endif//FPU_PRECISION
+
 #include "binary_c_main_prototypes.h"
 #include "binary_c_main_macros.h"
 #ifdef STACK_SIZE
diff --git a/src/setup/version.c b/src/setup/version.c
index 04b0615e5d52e5c82cc1c6d0265a67008d4d7c78..8190b25714eac2abd1c51a797aa68b41fdd1136b 100644
--- a/src/setup/version.c
+++ b/src/setup/version.c
@@ -183,7 +183,7 @@ void version(struct stardata_t * RESTRICT const stardata)
     Macrotest(FPU_CAPTURE_UNDERFLOWS);
     Macrotest(FPU_CAPTURE_OVERFLOWS);
     Macrotest(FPU_CAPTURE_DIVIDE_BY_ZERO);
-    Macrotest(NO_FPU_CONTROL);
+    Macrotest(FPU_CONTROL);
     Macrotest(CHECK_ISNAN_WORKS);
     
     Show_float_macro(ZERO);