Avoid reassigning parameters.
diff --git a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java
index 9cbc43d..60f2c06 100644
--- a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java
+++ b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java
@@ -71,13 +71,12 @@
         // reduce numerator and denominator by greatest common denominator
         final BigInteger gcd = num.gcd(den);
         if (BigInteger.ONE.compareTo(gcd) < 0) {
-            num = num.divide(gcd);
-            den = den.divide(gcd);
+            numerator = num.divide(gcd);
+            denominator = den.divide(gcd);
+        } else {
+            numerator = num;
+            denominator = den;
         }
-
-        // store the values in the final fields
-        numerator = num;
-        denominator = den;
     }
 
     /**
diff --git a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/Fraction.java b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/Fraction.java
index f8fa171..a2acc21 100644
--- a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/Fraction.java
+++ b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/Fraction.java
@@ -73,23 +73,29 @@
             numerator = 1;
             denominator = 1;
         } else {
+            // Reduce numerator (p) and denominator (q) by greatest common divisor.
+            int p;
+            int q;
+
             // If num and den are both 2^-31, or if one is 0 and the other is 2^-31,
             // the calculation of the gcd below will fail. Ensure that this does not
             // happen by dividing both by 2 in case both are even.
             if (((num | den) & 1) == 0) {
-                num >>= 1;
-                den >>= 1;
+                p = num >> 1;
+                q = den >> 1;
+            } else {
+                p = num;
+                q = den;
             }
 
-            // Reduce numerator and denominator by greatest common divisor.
-            final int d = ArithmeticUtils.gcd(num, den);
+            final int d = ArithmeticUtils.gcd(p, q);
             if (d > 1) {
-                num /= d;
-                den /= d;
+                p /= d;
+                q /= d;
             }
 
-            numerator = num;
-            denominator = den;
+            numerator = p;
+            denominator = q;
         }
     }