diff --git a/src/compiler/Dataflow.cc b/src/compiler/Dataflow.cc
index 5f632c0..bea5ef0 100644
--- a/src/compiler/Dataflow.cc
+++ b/src/compiler/Dataflow.cc
@@ -1869,19 +1869,19 @@
                             ccode = kCondEq;
                             break;
                         case Instruction::IF_NEZ:
-                           // ccode = kCondNe;
+                            ccode = kCondNe;
                             break;
                         case Instruction::IF_LTZ:
-                            // ccode = kCondLt;
+                            ccode = kCondLt;
                             break;
                         case Instruction::IF_GEZ:
-                            // ccode = kCondGe;
+                            ccode = kCondGe;
                             break;
                         case Instruction::IF_GTZ:
-                            // ccode = kCondGt;
+                            ccode = kCondGt;
                             break;
                         case Instruction::IF_LEZ:
-                            // ccode = kCondLe;
+                            ccode = kCondLe;
                             break;
                         default:
                             break;
diff --git a/src/compiler/codegen/MethodCodegenDriver.cc b/src/compiler/codegen/MethodCodegenDriver.cc
index 1dc11da..fb9bdc9 100644
--- a/src/compiler/codegen/MethodCodegenDriver.cc
+++ b/src/compiler/codegen/MethodCodegenDriver.cc
@@ -737,9 +737,6 @@
 
 const char* extendedMIROpNames[kMirOpLast - kMirOpFirst] = {
     "kMirOpPhi",
-    "kMirOpNullNRangeUpCheck",
-    "kMirOpNullNRangeDownCheck",
-    "kMirOpLowerBound",
     "kMirOpCopy",
     "kMirFusedCmplFloat",
     "kMirFusedCmpgFloat",
@@ -747,6 +744,9 @@
     "kMirFusedCmpgDouble",
     "kMirFusedCmpLong",
     "kMirNop",
+    "kMirOpNullNRangeUpCheck",
+    "kMirOpNullNRangeDownCheck",
+    "kMirOpLowerBound",
 };
 
 /* Extended MIR instructions like PHI */
diff --git a/src/compiler/codegen/arm/Thumb2/Gen.cc b/src/compiler/codegen/arm/Thumb2/Gen.cc
index ea02ca9..f485403 100644
--- a/src/compiler/codegen/arm/Thumb2/Gen.cc
+++ b/src/compiler/codegen/arm/Thumb2/Gen.cc
@@ -658,12 +658,12 @@
 {
     LIR* labelList = (LIR*)cUnit->blockLabelList;
     LIR* taken = &labelList[bb->taken->id];
+    LIR* notTaken = &labelList[bb->fallThrough->id];
     RegLocation rlSrc1 = oatGetSrcWide(cUnit, mir, 0, 1);
     RegLocation rlSrc2 = oatGetSrcWide(cUnit, mir, 2, 3);
     rlSrc1 = loadValueWide(cUnit, rlSrc1, kCoreReg);
     rlSrc2 = loadValueWide(cUnit, rlSrc2, kCoreReg);
     ConditionCode ccode = static_cast<ConditionCode>(mir->dalvikInsn.arg[0]);
-    LIR* notTaken = rawLIR(cUnit, mir->offset, kPseudoTargetLabel);
     opRegReg(cUnit, kOpCmp, rlSrc1.highReg, rlSrc2.highReg);
     switch(ccode) {
         case kCondEq:
@@ -675,25 +675,28 @@
         case kCondLt:
             opCondBranch(cUnit, kCondLt, taken);
             opCondBranch(cUnit, kCondGt, notTaken);
+            ccode = kCondCc;
             break;
         case kCondLe:
             opCondBranch(cUnit, kCondLt, taken);
             opCondBranch(cUnit, kCondGt, notTaken);
+            ccode = kCondLs;
             break;
         case kCondGt:
             opCondBranch(cUnit, kCondGt, taken);
             opCondBranch(cUnit, kCondLt, notTaken);
+            ccode = kCondHi;
             break;
         case kCondGe:
             opCondBranch(cUnit, kCondGt, taken);
             opCondBranch(cUnit, kCondLt, notTaken);
+            ccode = kCondCs;
             break;
         default:
             LOG(FATAL) << "Unexpected ccode: " << (int)ccode;
     }
     opRegReg(cUnit, kOpCmp, rlSrc1.lowReg, rlSrc2.lowReg);
     opCondBranch(cUnit, ccode, taken);
-    oatAppendLIR(cUnit, notTaken);
 }
 
 /*
