diff --git a/policy_manager/evaluation_context-inl.h b/policy_manager/evaluation_context-inl.h
index 4e1922b..c8e3808 100644
--- a/policy_manager/evaluation_context-inl.h
+++ b/policy_manager/evaluation_context-inl.h
@@ -11,9 +11,9 @@
 
 template<typename T>
 const T* EvaluationContext::GetValue(Variable<T>* var) {
-  if (var == NULL) {
+  if (var == nullptr) {
     LOG(ERROR) << "GetValue received an uninitialized variable.";
-    return NULL;
+    return nullptr;
   }
 
   // Search for the value on the cache first.
@@ -24,16 +24,15 @@
   // Get the value from the variable if not found on the cache.
   std::string errmsg;
   const T* result = var->GetValue(RemainingTime(), &errmsg);
-  if (result == NULL) {
+  if (result == nullptr) {
     LOG(WARNING) << "Error reading Variable " << var->GetName() << ": \""
         << errmsg << "\"";
-  } else {
-    // Cache the value for the next time. The map of CachedValues keeps the
-    // ownership of the pointer until the map is destroyed.
-    value_cache_.emplace(
-      static_cast<BaseVariable*>(var),
-      std::move(BoxedValue(result)));
   }
+  // Cache the value for the next time. The map of CachedValues keeps the
+  // ownership of the pointer until the map is destroyed.
+  value_cache_.emplace(
+    static_cast<BaseVariable*>(var),
+    std::move(BoxedValue(result)));
   return result;
 }
 
diff --git a/policy_manager/evaluation_context_unittest.cc b/policy_manager/evaluation_context_unittest.cc
index 249a2d5..1ddec84 100644
--- a/policy_manager/evaluation_context_unittest.cc
+++ b/policy_manager/evaluation_context_unittest.cc
@@ -117,16 +117,15 @@
   EXPECT_EQ(42, *p_fake_int);
 }
 
-TEST_F(PmEvaluationContextTest, GetValueDontCacheNULL) {
+TEST_F(PmEvaluationContextTest, GetValueCachesNull) {
   const int* p_fake_int = eval_ctx_->GetValue(&fake_int_var_);
   PMTEST_EXPECT_NULL(p_fake_int);
 
   fake_int_var_.reset(new int(42));
-  // A second attempt to read the variable should work even on the same
-  // EvaluationContext.
+  // A second attempt to read the variable should not work because this
+  // EvaluationContext already got a NULL value.
   p_fake_int = eval_ctx_->GetValue(&fake_int_var_);
-  PMTEST_ASSERT_NOT_NULL(p_fake_int);
-  EXPECT_EQ(42, *p_fake_int);
+  PMTEST_EXPECT_NULL(p_fake_int);
 }
 
 TEST_F(PmEvaluationContextTest, GetValueMixedTypes) {
