--- old/src/share/classes/java/math/BitSieve.java	Tue Mar 17 14:11:30 2009
+++ new/src/share/classes/java/math/BitSieve.java	Tue Mar 17 14:11:30 2009
@@ -110,14 +110,12 @@
         int convertedStep = (step *2) + 1;
 
         // Construct the large sieve at an even offset specified by base
-        MutableBigInteger r = new MutableBigInteger();
+        MutableBigInteger b = new MutableBigInteger(base);
         MutableBigInteger q = new MutableBigInteger();
         do {
             // Calculate base mod convertedStep
-            r.copyValue(base.mag);
-            r.divideOneWord(convertedStep, q);
-            start = r.value[r.offset];
-
+            start = b.divideOneWord(convertedStep, q);
+            
             // Take each multiple of step out of sieve
             start = convertedStep - start;
             if (start%2 == 0)
