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