diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index 0a6aa48..74ef26e 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -367,12 +367,8 @@
 	iw = ((floatobject *)w)->ob_fval;
 	intw = (long)iw;
 	if (iw == intw) {
-		errno = 0;
-		ix = powi(iv, intw);
-	}
-	else {
 		/* Sort out special cases here instead of relying on pow() */
-		if (iw == 0.0) { 		/* x**0 is 1, even 0**0 */
+		if (intw == 0) { 		/* x**0 is 1, even 0**0 */
 		 	if ((object *)z!=None) {
 			 	ix=fmod(1.0, z->ob_fval);
 			 	if (ix!=0 && z->ob_fval<0) ix+=z->ob_fval;
@@ -380,6 +376,11 @@
 		 	else ix=1.0;
 	    		return newfloatobject(ix); 
 		}
+		errno = 0;
+		ix = powi(iv, intw);
+	}
+	else {
+		/* Sort out special cases here instead of relying on pow() */
 		if (iv == 0.0) {
 			if (iw < 0.0) {
 				err_setstr(ValueError, "0.0 to a negative power");
