diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index 1a24cb5..4923b3c 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -1154,8 +1154,6 @@
   virtual bool CanThrow() const { return false; }
   bool HasSideEffects() const { return side_effects_.HasSideEffects(); }
 
-  virtual bool ActAsNullConstant() const { return false; }
-
   // Does not apply for all instructions, but having this at top level greatly
   // simplifies the null check elimination.
   virtual bool CanBeNull() const {
@@ -2080,8 +2078,6 @@
 
   size_t ComputeHashCode() const OVERRIDE { return 0; }
 
-  bool ActAsNullConstant() const OVERRIDE { return true; }
-
   DECLARE_INSTRUCTION(NullConstant);
 
  private:
@@ -2103,11 +2099,6 @@
 
   size_t ComputeHashCode() const OVERRIDE { return GetValue(); }
 
-  // TODO: Null is represented by the `0` constant. In most cases we replace it
-  // with a HNullConstant but we don't do it when comparing (a != null). This
-  // method is an workaround until we fix the above.
-  bool ActAsNullConstant() const OVERRIDE { return value_ == 0; }
-
   bool IsMinusOne() const OVERRIDE { return GetValue() == -1; }
   bool IsZero() const OVERRIDE { return GetValue() == 0; }
   bool IsOne() const OVERRIDE { return GetValue() == 1; }
diff --git a/compiler/optimizing/reference_type_propagation.cc b/compiler/optimizing/reference_type_propagation.cc
index de6941c..12b1c2b 100644
--- a/compiler/optimizing/reference_type_propagation.cc
+++ b/compiler/optimizing/reference_type_propagation.cc
@@ -68,11 +68,11 @@
   }
   HInstruction* input0 = ifInput->InputAt(0);
   HInstruction* input1 = ifInput->InputAt(1);
-  HInstruction* obj;
+  HInstruction* obj = nullptr;
 
-  if ((input0->GetType() == Primitive::kPrimNot) && input1->ActAsNullConstant()) {
+  if (input1->IsNullConstant()) {
     obj = input0;
-  } else if ((input1->GetType() == Primitive::kPrimNot) && input0->ActAsNullConstant()) {
+  } else if (input0->IsNullConstant()) {
     obj = input1;
   } else {
     return;
