diff --git a/src/compiler/codegen/RallocUtil.cc b/src/compiler/codegen/RallocUtil.cc
index d6e0bbc..5951ad4 100644
--- a/src/compiler/codegen/RallocUtil.cc
+++ b/src/compiler/codegen/RallocUtil.cc
@@ -640,26 +640,16 @@
     if (rl.location == kLocPhysReg) {
         RegisterInfo* infoLo = getRegInfo(cUnit, rl.lowReg);
         RegisterInfo* infoHi = getRegInfo(cUnit, rl.highReg);
-        if (!infoLo->pair) {
-            dumpRegPool(cUnit->regPool->coreRegs,
-                        cUnit->regPool->numCoreRegs);
-            assert(infoLo->pair);
+        if (infoLo->isTemp) {
+            infoLo->pair = false;
+            infoLo->defStart = NULL;
+            infoLo->defEnd = NULL;
         }
-        if (!infoHi->pair) {
-            dumpRegPool(cUnit->regPool->coreRegs,
-                        cUnit->regPool->numCoreRegs);
-            assert(infoHi->pair);
+        if (infoHi->isTemp) {
+            infoHi->pair = false;
+            infoHi->defStart = NULL;
+            infoHi->defEnd = NULL;
         }
-        assert(infoLo->pair);
-        assert(infoHi->pair);
-        assert(infoLo->partner == infoHi->reg);
-        assert(infoHi->partner == infoLo->reg);
-        infoLo->pair = false;
-        infoHi->pair = false;
-        infoLo->defStart = NULL;
-        infoLo->defEnd = NULL;
-        infoHi->defStart = NULL;
-        infoHi->defEnd = NULL;
     }
     rl.wide = false;
     return rl;
diff --git a/src/compiler/codegen/arm/MethodCodegenDriver.cc b/src/compiler/codegen/arm/MethodCodegenDriver.cc
index 96f5423..9c87659 100644
--- a/src/compiler/codegen/arm/MethodCodegenDriver.cc
+++ b/src/compiler/codegen/arm/MethodCodegenDriver.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#define FORCE_SLOW 1
+#define FORCE_SLOW 0
 
 static const RegLocation badLoc = {kLocDalvikFrame, 0, 0, INVALID_REG,
                                    INVALID_REG, INVALID_SREG, 0,
@@ -804,7 +804,7 @@
      * frame backing storage.
      */
     // Scan the rest of the args - if in physReg flush to memory
-    for (int i = 4; i < numArgs; i++) {
+    for (int i = 3; i < numArgs; i++) {
         RegLocation loc = oatGetRawSrc(cUnit, mir, i);
         if (loc.wide) {
             loc = oatUpdateLocWide(cUnit, loc);
