diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index 33d5392..049b292 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -730,7 +730,7 @@
 		return NULL;
 	PyFPE_START_PROTECT("Tkapp_ExprDouble", return 0)
 	retval = Tcl_ExprDouble (Tkapp_Interp (self), s, &v);
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(retval)
 	if (retval == TCL_ERROR)
 		return Tkinter_Error(self);
 	return Py_BuildValue("d", v);
diff --git a/Modules/cmathmodule.c b/Modules/cmathmodule.c
index 438f010..4e08722 100644
--- a/Modules/cmathmodule.c
+++ b/Modules/cmathmodule.c
@@ -249,7 +249,7 @@
 	errno = 0;
 	PyFPE_START_PROTECT("complex function", return 0)
 	x = (*func)(x);
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(x)
 	CHECK(x.real);
 	CHECK(x.imag);
 	if (errno != 0)
diff --git a/Modules/fpetestmodule.c b/Modules/fpetestmodule.c
index 475bd7e..b568b60 100644
--- a/Modules/fpetestmodule.c
+++ b/Modules/fpetestmodule.c
@@ -120,11 +120,11 @@
     /* This (following) message is never seen. */
     PyFPE_START_PROTECT("Division by zero, inner zone", return 3.1416)
     a = 1./(1. - x);
-    PyFPE_END_PROTECT
+    PyFPE_END_PROTECT(a)
   }else if(i == 2){
     a = 1./(2. - x);
   }
-  PyFPE_END_PROTECT
+  PyFPE_END_PROTECT(a)
 
   return a;
 }
@@ -140,7 +140,7 @@
   }else if(i == 2){
     a = 1./(2. - x);
   }
-  PyFPE_END_PROTECT
+  PyFPE_END_PROTECT(a)
   return a;
 }
 
@@ -150,7 +150,7 @@
   /* This (following) message is never seen. */
   PyFPE_START_PROTECT("Division by zero, nest3 error", return 3.1416)
   result = 1./(1. - x);
-  PyFPE_END_PROTECT
+  PyFPE_END_PROTECT(result)
   return result;
 }
 
@@ -159,7 +159,7 @@
   double a;
   PyFPE_START_PROTECT("Division by zero", return 3.1416)
   a = 1./x;
-  PyFPE_END_PROTECT
+  PyFPE_END_PROTECT(a)
   return a;
 }
 
@@ -168,7 +168,7 @@
   double a;
   PyFPE_START_PROTECT("Overflow", return 3.1416)
   a = b*b;
-  PyFPE_END_PROTECT
+  PyFPE_END_PROTECT(a)
   return a;
 }
 
diff --git a/Modules/imgfile.c b/Modules/imgfile.c
index 779169d..865ecab 100644
--- a/Modules/imgfile.c
+++ b/Modules/imgfile.c
@@ -390,7 +390,7 @@
 	PyFPE_START_PROTECT("readscaled", return 0)
 	xfac = (float)xsize/(float)xwtd;
 	yfac = (float)ysize/(float)ywtd;
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(yfac)
 	cdatap = PyString_AsString(rv);
 	idatap = (long *)cdatap;
 
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index bb4f1e8..0df3843 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -82,7 +82,7 @@
 	errno = 0;
 	PyFPE_START_PROTECT("in math_1", return 0)
 	x = (*func)(x);
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(x)
 	CHECK(x);
 	if (errno != 0)
 		return math_error();
@@ -101,7 +101,7 @@
 	errno = 0;
 	PyFPE_START_PROTECT("in math_2", return 0)
 	x = (*func)(x, y);
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(x)
 	CHECK(x);
 	if (errno != 0)
 		return math_error();
@@ -179,7 +179,7 @@
 	errno = 0;
 	PyFPE_START_PROTECT("ldexp", return 0)
 	x = ldexp(x, (int)y);
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(x)
 	CHECK(x);
 	if (errno != 0)
 		return math_error();
diff --git a/Modules/mpzmodule.c b/Modules/mpzmodule.c
index bf83109..a2bcfed 100644
--- a/Modules/mpzmodule.c
+++ b/Modules/mpzmodule.c
@@ -1497,7 +1497,7 @@
 		mulstate *= multiplier;
 		mpz_div_2exp(&mpzscratch, &mpzscratch, BITS_PER_MP_LIMB);
 	}
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(mulstate)
 
 	assert(mpz_cmp_ui(&mpzscratch, (unsigned long int)0) == 0);
 	mpz_clear(&mpzscratch);
diff --git a/Objects/complexobject.c b/Objects/complexobject.c
index 212fd34..b141f2f 100644
--- a/Objects/complexobject.c
+++ b/Objects/complexobject.c
@@ -367,7 +367,7 @@
 	Py_complex result;
 	PyFPE_START_PROTECT("complex_add", return 0)
 	result = c_sum(v->cval,w->cval);
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(result)
 	return newcomplexobject(result);
 }
 
@@ -379,7 +379,7 @@
 	Py_complex result;
 	PyFPE_START_PROTECT("complex_sub", return 0)
 	result = c_diff(v->cval,w->cval);
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(result)
 	return newcomplexobject(result);
 }
 
@@ -391,7 +391,7 @@
 	Py_complex result;
 	PyFPE_START_PROTECT("complex_mul", return 0)
 	result = c_prod(v->cval,w->cval);
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(result)
 	return newcomplexobject(result);
 }
 
@@ -404,7 +404,7 @@
 	PyFPE_START_PROTECT("complex_div", return 0)
 	c_error = 0;
 	quot = c_quot(v->cval,w->cval);
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(quot)
 	if (c_error == 1) {
 		err_setstr(ZeroDivisionError, "complex division");
 		return NULL;
@@ -480,7 +480,7 @@
 	else
 		p = c_pow(v->cval,exponent);
 
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(p)
 	if (c_error == 2) {
 		err_setstr(ValueError, "0.0 to a negative or complex power");
 		return NULL;
@@ -514,7 +514,7 @@
 	double result;
 	PyFPE_START_PROTECT("complex_abs", return 0)
 	result = hypot(v->cval.real,v->cval.imag);
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(result)
 	return newfloatobject(result);
 }
 
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index e8d0d68..72b68a9 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -260,7 +260,7 @@
 	double result;
 	PyFPE_START_PROTECT("add", return 0)
 	result = v->ob_fval + w->ob_fval;
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(result)
 	return newfloatobject(result);
 }
 
@@ -272,7 +272,7 @@
 	double result;
 	PyFPE_START_PROTECT("subtract", return 0)
 	result = v->ob_fval - w->ob_fval;
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(result)
 	return newfloatobject(result);
 }
 
@@ -285,7 +285,7 @@
 
 	PyFPE_START_PROTECT("multiply", return 0)
 	result = v->ob_fval * w->ob_fval;
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(result)
 	return newfloatobject(result);
 }
 
@@ -301,7 +301,7 @@
 	}
 	PyFPE_START_PROTECT("divide", return 0)
 	result = v->ob_fval / w->ob_fval;
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(result)
 	return newfloatobject(result);
 }
 
@@ -325,7 +325,7 @@
 		mod += wx;
 		/* div -= 1.0; */
 	}
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(mod)
 	return newfloatobject(mod);
 }
 
@@ -349,7 +349,7 @@
 		mod += wx;
 		div -= 1.0;
 	}
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(div)
 	return mkvalue("(dd)", div, mod);
 }
 
@@ -394,7 +394,7 @@
 			 	if (ix!=0 && z->ob_fval<0) ix+=z->ob_fval;
 			}
 		 	else ix=1.0;
-			PyFPE_END_PROTECT
+			PyFPE_END_PROTECT(ix)
 	    		return newfloatobject(ix); 
 		}
 		errno = 0;
@@ -403,7 +403,7 @@
 			ix = powu(iv, intw);
 		else
 			ix = 1./powu(iv, -intw);
-		PyFPE_END_PROTECT
+		PyFPE_END_PROTECT(ix)
 	}
 	else {
 		/* Sort out special cases here instead of relying on pow() */
@@ -423,7 +423,7 @@
 		errno = 0;
 		PyFPE_START_PROTECT("pow", return 0)
 		ix = pow(iv, iw);
-		PyFPE_END_PROTECT
+		PyFPE_END_PROTECT(ix)
 	}
 	CHECK(ix);
 	if (errno != 0) {
@@ -438,7 +438,7 @@
 		      ((iv<0 && z->ob_fval>0) || (iv>0 && z->ob_fval<0) )) {
 		     ix+=z->ob_fval;
 		    }
-		PyFPE_END_PROTECT
+		PyFPE_END_PROTECT(ix)
 	}
 	return newfloatobject(ix);
 }
diff --git a/Objects/longobject.c b/Objects/longobject.c
index e0255e9..8de5456 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -1421,7 +1421,7 @@
 	double result;
 	PyFPE_START_PROTECT("long_float", return 0)
 	result = dgetlongvalue(v);
-	PyFPE_END_PROTECT
+	PyFPE_END_PROTECT(result)
 	return newfloatobject(result);
 }
 
diff --git a/Python/compile.c b/Python/compile.c
index 9f7d1f8..3bdd994 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -818,14 +818,14 @@
 		c.real = 0.;
 		PyFPE_START_PROTECT("atof", return 0)
 		c.imag = atof(s);
-		PyFPE_END_PROTECT
+		PyFPE_END_PROTECT(c)
 		return newcomplexobject(c);
 	}
 	else {
 #endif
 		PyFPE_START_PROTECT("atof", return 0)
 		dx = atof(s);
-		PyFPE_END_PROTECT
+		PyFPE_END_PROTECT(dx)
 		return newfloatobject(dx);
 	}
 }
diff --git a/Python/marshal.c b/Python/marshal.c
index f4634f0..22d0242 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -422,7 +422,7 @@
 			buf[n] = '\0';
 			PyFPE_START_PROTECT("atof", return 0)
 			dx = atof(buf);
-			PyFPE_END_PROTECT
+			PyFPE_END_PROTECT(dx)
 			return newfloatobject(dx);
 		}
 	
@@ -441,7 +441,7 @@
 			buf[n] = '\0';
 			PyFPE_START_PROTECT("atof", return 0)
 			c.real = atof(buf);
-			PyFPE_END_PROTECT
+			PyFPE_END_PROTECT(c)
 			n = r_byte(p);
 			if (r_string(buf, (int)n, p) != n) {
 				err_setstr(EOFError,
@@ -451,7 +451,7 @@
 			buf[n] = '\0';
 			PyFPE_START_PROTECT("atof", return 0)
 			c.imag = atof(buf);
-			PyFPE_END_PROTECT
+			PyFPE_END_PROTECT(c)
 			return newcomplexobject(c);
 		}
 #endif
diff --git a/Python/pyfpe.c b/Python/pyfpe.c
index 0b38997..a1de1af 100644
--- a/Python/pyfpe.c
+++ b/Python/pyfpe.c
@@ -12,5 +12,5 @@
 #ifdef WANT_SIGFPE_HANDLER
 jmp_buf PyFPE_jbuf;
 int PyFPE_counter = 0;
-double PyFPE_dummy(void){return(1.0);}
+double PyFPE_dummy(){return(1.0);}
 #endif
