diff -ruN src/gsl_math.h src-mod/gsl_math.h
--- src/gsl_math.h	2010-12-26 09:57:08.000000000 -0800
+++ src-mod/gsl_math.h	2014-05-27 18:47:26.000000000 -0700
@@ -116,7 +116,7 @@
 #define GSL_SIGN(x)    ((x) >= 0.0 ? 1 : -1)
 
 /* Return nonzero if x is a real number, i.e. non NaN or infinite. */
-#define GSL_IS_REAL(x) (gsl_finite(x))
+#define GSL_IS_REAL(x) (isfinite(x))
 
 /* Definition of an arbitrary function with parameters */
 
diff -ruN src/integration/cquad.c src-mod/integration/cquad.c
--- src/integration/cquad.c	2011-05-01 11:46:28.000000000 -0700
+++ src-mod/integration/cquad.c	2014-05-27 18:47:26.000000000 -0700
@@ -235,7 +235,7 @@
     {
       iv->fx[i] = GSL_FN_EVAL (f, m + xi[i] * h);
       neval++;
-      if (!finite (iv->fx[i]))
+      if (!isfinite (iv->fx[i]))
 	{
 	  nans[nnans++] = i;
 	  iv->fx[i] = 0.0;
@@ -319,7 +319,7 @@
 	  nnans = 0;
 	  for (i = 0; i <= 32; i += skip[d])
 	    {
-	      if (!finite (iv->fx[i]))
+	      if (!isfinite (iv->fx[i]))
 		{
 		  nans[nnans++] = i;
 		  iv->fx[i] = 0.0;
@@ -444,7 +444,7 @@
 	  nnans = 0;
 	  for (i = 0; i <= 32; i += skip[0])
 	    {
-	      if (!finite (ivl->fx[i]))
+	      if (!isfinite (ivl->fx[i]))
 		{
 		  nans[nnans++] = i;
 		  ivl->fx[i] = 0.0;
@@ -510,7 +510,7 @@
 	  nnans = 0;
 	  for (i = 0; i <= 32; i += skip[0])
 	    {
-	      if (!finite (ivr->fx[i]))
+	      if (!isfinite (ivr->fx[i]))
 		{
 		  nans[nnans++] = i;
 		  ivr->fx[i] = 0.0;
diff -ruN src/linalg/balance.c src-mod/linalg/balance.c
--- src/linalg/balance.c	2010-12-26 09:57:08.000000000 -0800
+++ src-mod/linalg/balance.c	2014-05-27 18:47:27.000000000 -0700
@@ -54,7 +54,7 @@
       
       double f = 1.0;
       
-      if (s == 0.0 || !gsl_finite(s))
+      if (s == 0.0 || !isfinite(s))
         {
           gsl_vector_set (D, j, f);
           continue;
diff -ruN src/min/min.h src-mod/min/min.h
--- src/min/min.h	2010-12-26 09:57:08.000000000 -0800
+++ src-mod/min/min.h	2014-05-27 18:47:27.000000000 -0700
@@ -20,6 +20,6 @@
 #define SAFE_FUNC_CALL(f, x, yp) \
 do { \
   *yp = GSL_FN_EVAL(f,x); \
-  if (!gsl_finite(*yp)) \
+  if (!isfinite(*yp)) \
     GSL_ERROR("computed function value is infinite or NaN", GSL_EBADFUNC); \
 } while (0)
diff -ruN src/multimin/simplex.c src-mod/multimin/simplex.c
--- src/multimin/simplex.c	2010-12-26 09:57:08.000000000 -0800
+++ src-mod/multimin/simplex.c	2014-05-27 18:47:27.000000000 -0700
@@ -122,7 +122,7 @@
 	     we finish the contraction (and do not abort) to allow the user
 	     to handle the situation */
 
-          if(!gsl_finite(newval))
+          if(!isfinite(newval))
 	    {
 	      status = GSL_EBADFUNC;
 	    }
@@ -260,7 +260,7 @@
 
   val = GSL_MULTIMIN_FN_EVAL (f, x);
   
-  if (!gsl_finite(val))
+  if (!isfinite(val))
     {
       GSL_ERROR("non-finite function value encountered", GSL_EBADFUNC);
     }
@@ -283,7 +283,7 @@
       gsl_vector_set (xtemp, i, val);
       val = GSL_MULTIMIN_FN_EVAL (f, xtemp);
   
-      if (!gsl_finite(val))
+      if (!isfinite(val))
         {
           GSL_ERROR("non-finite function value encountered", GSL_EBADFUNC);
         }
@@ -374,14 +374,14 @@
 
   val = nmsimplex_move_corner (-1.0, state, hi, xc, f);
 
-  if (gsl_finite(val) && val < gsl_vector_get (y1, lo))
+  if (isfinite(val) && val < gsl_vector_get (y1, lo))
     {
 
       /* reflected point becomes lowest point, try expansion */
 
       val2 = nmsimplex_move_corner (-2.0, state, hi, xc2, f);
 
-      if (gsl_finite(val2) && val2 < gsl_vector_get (y1, lo))
+      if (isfinite(val2) && val2 < gsl_vector_get (y1, lo))
         {
           gsl_matrix_set_row (x1, hi, xc2);
           gsl_vector_set (y1, hi, val2);
@@ -397,9 +397,9 @@
      or
      we got a non-finite (illegal) function value */
 
-  else if (!gsl_finite(val) || val > gsl_vector_get (y1, s_hi))
+  else if (!isfinite(val) || val > gsl_vector_get (y1, s_hi))
     {
-      if (gsl_finite(val) && val <= gsl_vector_get (y1, hi))
+      if (isfinite(val) && val <= gsl_vector_get (y1, hi))
         {
 
           /* if trial point is better than highest point, replace 
@@ -413,7 +413,7 @@
 
       val2 = nmsimplex_move_corner (0.5, state, hi, xc2, f);
 
-      if (gsl_finite(val2) && val2 <= gsl_vector_get (y1, hi))
+      if (isfinite(val2) && val2 <= gsl_vector_get (y1, hi))
         {
           gsl_matrix_set_row (state->x1, hi, xc2);
           gsl_vector_set (y1, hi, val2);
diff -ruN src/multimin/simplex2.c src-mod/multimin/simplex2.c
--- src/multimin/simplex2.c	2010-12-26 09:57:08.000000000 -0800
+++ src-mod/multimin/simplex2.c	2014-05-27 18:47:27.000000000 -0700
@@ -171,7 +171,7 @@
 	     we finish the contraction (and do not abort) to allow the user
 	     to handle the situation */
 
-	  if (!gsl_finite (newval))
+	  if (!isfinite (newval))
 	    {
 	      status = GSL_EBADFUNC;
 	    }
@@ -367,7 +367,7 @@
 
   val = GSL_MULTIMIN_FN_EVAL (f, x);
 
-  if (!gsl_finite (val))
+  if (!isfinite (val))
     {
       GSL_ERROR ("non-finite function value encountered", GSL_EBADFUNC);
     }
@@ -394,7 +394,7 @@
 	val = GSL_MULTIMIN_FN_EVAL (f, xtemp);
       }
 
-      if (!gsl_finite (val))
+      if (!isfinite (val))
 	{
 	  GSL_ERROR ("non-finite function value encountered", GSL_EBADFUNC);
 	}
@@ -477,13 +477,13 @@
 
   val = try_corner_move (-1.0, state, hi, xc, f);
 
-  if (gsl_finite (val) && val < gsl_vector_get (y1, lo))
+  if (isfinite (val) && val < gsl_vector_get (y1, lo))
     {
       /* reflected point is lowest, try expansion */
 
       val2 = try_corner_move (-2.0, state, hi, xc2, f);
 
-      if (gsl_finite (val2) && val2 < gsl_vector_get (y1, lo))
+      if (isfinite (val2) && val2 < gsl_vector_get (y1, lo))
 	{
 	  update_point (state, hi, xc2, val2);
 	}
@@ -492,12 +492,12 @@
 	  update_point (state, hi, xc, val);
 	}
     }
-  else if (!gsl_finite (val) || val > gsl_vector_get (y1, s_hi))
+  else if (!isfinite (val) || val > gsl_vector_get (y1, s_hi))
     {
       /* reflection does not improve things enough, or we got a
          non-finite function value */
 
-      if (gsl_finite (val) && val <= gsl_vector_get (y1, hi))
+      if (isfinite (val) && val <= gsl_vector_get (y1, hi))
 	{
 	  /* if trial point is better than highest point, replace
 	     highest point */
@@ -509,7 +509,7 @@
 
       val2 = try_corner_move (0.5, state, hi, xc2, f);
 
-      if (gsl_finite (val2) && val2 <= gsl_vector_get (y1, hi))
+      if (isfinite (val2) && val2 <= gsl_vector_get (y1, hi))
 	{
 	  update_point (state, hi, xc2, val2);
 	}
@@ -605,7 +605,7 @@
 
   val = GSL_MULTIMIN_FN_EVAL (f, x);
 
-  if (!gsl_finite (val))
+  if (!isfinite (val))
     {
       GSL_ERROR ("non-finite function value encountered", GSL_EBADFUNC);
     }
@@ -669,7 +669,7 @@
 
 	val = GSL_MULTIMIN_FN_EVAL (f, &r_i.vector);
 
-	if (!gsl_finite (val))
+	if (!isfinite (val))
 	  {
 	    GSL_ERROR ("non-finite function value encountered", GSL_EBADFUNC);
 	  }
diff -ruN src/roots/newton.c src-mod/roots/newton.c
--- src/roots/newton.c	2010-12-26 09:57:08.000000000 -0800
+++ src-mod/roots/newton.c	2014-05-27 18:47:27.000000000 -0700
@@ -83,12 +83,12 @@
   state->f = f_new ;
   state->df = df_new ;
 
-  if (!gsl_finite(f_new))
+  if (!isfinite(f_new))
     {
       GSL_ERROR ("function value is not finite", GSL_EBADFUNC);
     }
 
-  if (!gsl_finite (df_new))
+  if (!isfinite (df_new))
     {
       GSL_ERROR ("derivative value is not finite", GSL_EBADFUNC);
     }
diff -ruN src/roots/roots.h src-mod/roots/roots.h
--- src/roots/roots.h	2010-12-26 09:57:08.000000000 -0800
+++ src-mod/roots/roots.h	2014-05-27 18:47:27.000000000 -0700
@@ -28,7 +28,7 @@
 #define SAFE_FUNC_CALL(f, x, yp) \
 do { \
   *yp = GSL_FN_EVAL(f,x); \
-  if (!gsl_finite(*yp)) \
+  if (!isfinite(*yp)) \
     GSL_ERROR("function value is not finite", GSL_EBADFUNC); \
 } while (0)
 
diff -ruN src/roots/secant.c src-mod/roots/secant.c
--- src/roots/secant.c	2010-12-26 09:57:08.000000000 -0800
+++ src-mod/roots/secant.c	2014-05-27 18:47:27.000000000 -0700
@@ -94,12 +94,12 @@
   state->f = f_new ;
   state->df = df_new ;
 
-  if (!gsl_finite (f_new))
+  if (!isfinite (f_new))
     {
       GSL_ERROR ("function value is not finite", GSL_EBADFUNC);
     }
 
-  if (!gsl_finite (df_new))
+  if (!isfinite (df_new))
     {
       GSL_ERROR ("derivative value is not finite", GSL_EBADFUNC);
     }
diff -ruN src/roots/steffenson.c src-mod/roots/steffenson.c
--- src/roots/steffenson.c	2010-12-26 09:57:08.000000000 -0800
+++ src-mod/roots/steffenson.c	2014-05-27 18:47:27.000000000 -0700
@@ -105,7 +105,7 @@
   state->f = f_new ;
   state->df = df_new ;
 
-  if (!gsl_finite (f_new))
+  if (!isfinite (f_new))
     {
       GSL_ERROR ("function value is not finite", GSL_EBADFUNC);
     }
@@ -126,7 +126,7 @@
         *root = x_1 - u * u / v ;  /* accelerated value */
     }
 
-  if (!gsl_finite (df_new))
+  if (!isfinite (df_new))
     {
       GSL_ERROR ("derivative value is not finite", GSL_EBADFUNC);
     }
diff -ruN src/specfunc/hyperg_U.c src-mod/specfunc/hyperg_U.c
--- src/specfunc/hyperg_U.c	2010-12-26 09:57:08.000000000 -0800
+++ src-mod/specfunc/hyperg_U.c	2014-05-27 18:47:28.000000000 -0700
@@ -524,7 +524,7 @@
         t_err = a0_err + b0_err;
         dchu_val += t_val;
         dchu_err += t_err;
-        if(!finite(t_val) || fabs(t_val) < EPS*fabs(dchu_val)) break;
+        if(!isfinite(t_val) || fabs(t_val) < EPS*fabs(dchu_val)) break;
       }
 
       result->val  = dchu_val;
diff -ruN src/sys/ldfrexp.c src-mod/sys/ldfrexp.c
--- src/sys/ldfrexp.c	2010-12-26 09:57:08.000000000 -0800
+++ src-mod/sys/ldfrexp.c	2014-05-27 18:47:28.000000000 -0700
@@ -60,7 +60,7 @@
       *e = 0;
       return 0.0;
     }
-  else if (!finite (x))
+  else if (!isfinite (x))
     {
       *e = 0;
       return x;
@@ -85,7 +85,7 @@
 
       f = x * pow (2.0, -ei);
 
-      if (!finite (f))
+      if (!isfinite (f))
         {
           /* This should not happen */
           *e = 0;
diff -ruN src/test/results.c src-mod/test/results.c
--- src/test/results.c	2010-12-26 09:57:08.000000000 -0800
+++ src-mod/test/results.c	2014-05-27 18:47:28.000000000 -0700
@@ -24,7 +24,10 @@
 #include <stdlib.h>
 #include <gsl/gsl_sys.h>
 #include <gsl/gsl_machine.h>
+#include <stdarg.h>
+#define STDC_HEADERS
 
+/*
 #if HAVE_VPRINTF
 #ifdef STDC_HEADERS
 #include <stdarg.h>
@@ -32,6 +35,7 @@
 #include <varargs.h>
 #endif
 #endif
+*/
 
 #include <gsl/gsl_test.h>
 
