New form of PyFPE_END_PROTECT macro.
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