diff --git a/fslmaths.cc b/fslmaths.cc
index 3ffb20a922cc486967f356f00b092f3d7daed276..03dd11e76407f95ee0e0018e6947492a54625160 100755
--- a/fslmaths.cc
+++ b/fslmaths.cc
@@ -8,13 +8,7 @@
 
 #include "newimage/newimageall.h"
 #include "miscmaths/miscmaths.h"
-
-
-#if defined ( __CYGWIN__ ) ||  defined (__sun)
-extern "C" { 
-#include <ieeefp.h> 
-}
-#endif
+#include "utils/fsl_isfinite.h"
 
 using namespace MISCMATHS;
 using namespace NEWIMAGE;
@@ -800,7 +794,7 @@ if (!separatenoise)
          for(int z=0;z<input_volume.zsize();z++)
            for(int y=0;y<input_volume.ysize();y++)	    
 	     for(int x=0;x<input_volume.xsize();x++)
-               if ( finite((double)input_volume.value(x,y,z,t))) input_volume.value(x,y,z,t)=0;
+               if ( isfinite((double)input_volume.value(x,y,z,t))) input_volume.value(x,y,z,t)=0;
 	       else input_volume.value(x,y,z,t)=1;
      }
      /******************************************************/
@@ -810,7 +804,7 @@ if (!separatenoise)
          for(int z=0;z<input_volume.zsize();z++)
            for(int y=0;y<input_volume.ysize();y++)	    
 	     for(int x=0;x<input_volume.xsize();x++)
-               if (!finite((double)input_volume.value(x,y,z,t))) input_volume.value(x,y,z,t)=0;     
+               if (!isfinite((double)input_volume.value(x,y,z,t))) input_volume.value(x,y,z,t)=0;     
      }
      /******************************************************/
     else if (string(argv[i])=="-roi")