diff --git a/policy_manager/evaluation_context.cc b/policy_manager/evaluation_context.cc
index c756ddf..90855ad 100644
--- a/policy_manager/evaluation_context.cc
+++ b/policy_manager/evaluation_context.cc
@@ -91,7 +91,8 @@
     return false;
   if (reeval_timeout_set) {
     poll_timeout_event_ = RunFromMainLoopAfterTimeout(
-        base::Bind(&EvaluationContext::OnPollTimeout, this),  // refcounted.
+        base::Bind(&EvaluationContext::OnPollTimeout,
+                   weak_ptr_factory_.GetWeakPtr()),
         reeval_timeout);
   }
 
diff --git a/policy_manager/evaluation_context.h b/policy_manager/evaluation_context.h
index 9e8b3c2..e7b922f 100644
--- a/policy_manager/evaluation_context.h
+++ b/policy_manager/evaluation_context.h
@@ -9,6 +9,7 @@
 
 #include <base/callback.h>
 #include <base/memory/ref_counted.h>
+#include <base/memory/weak_ptr.h>
 #include <base/time.h>
 
 #include "update_engine/policy_manager/boxed_value.h"
@@ -24,7 +25,7 @@
     public base::RefCounted<EvaluationContext>,
     private BaseVariable::ObserverInterface {
  public:
-  EvaluationContext() {}
+  EvaluationContext() : weak_ptr_factory_(this) {}
   ~EvaluationContext();
 
   // Returns a pointer to the value returned by the passed variable |var|. The
@@ -76,6 +77,8 @@
   // Used to cancel the timeout callback.
   EventId poll_timeout_event_ = kEventIdNull;
 
+  base::WeakPtrFactory<EvaluationContext> weak_ptr_factory_;
+
   DISALLOW_COPY_AND_ASSIGN(EvaluationContext);
 };
 
diff --git a/policy_manager/evaluation_context_unittest.cc b/policy_manager/evaluation_context_unittest.cc
index d56b5a2..6fad0ce 100644
--- a/policy_manager/evaluation_context_unittest.cc
+++ b/policy_manager/evaluation_context_unittest.cc
@@ -203,4 +203,32 @@
   EXPECT_TRUE(value);
 }
 
+// Test that we can delete the EvaluationContext while having pending events.
+TEST_F(PmEvaluationContextTest, ObjectDeletedWithPendingEventsTest) {
+  fake_async_var_.reset(new string("Async value"));
+  fake_poll_var_.reset(new string("Polled value"));
+  eval_ctx_->GetValue(&fake_async_var_);
+  eval_ctx_->GetValue(&fake_poll_var_);
+  EXPECT_TRUE(eval_ctx_->RunOnValueChangeOrTimeout(Bind(&DoNothing)));
+  // TearDown() checks for leaked observers on this async_variable, which means
+  // that our object is still alive after removing its reference.
+}
+
+// Test that timed events fired after removal of the EvaluationContext don't
+// crash.
+TEST_F(PmEvaluationContextTest, TimeoutEventAfterDeleteTest) {
+  FakeVariable<string> fake_short_poll_var = {"fake_short_poll", TimeDelta()};
+  fake_short_poll_var.reset(new string("Polled value"));
+  eval_ctx_->GetValue(&fake_short_poll_var);
+  bool value = false;
+  EXPECT_TRUE(eval_ctx_->RunOnValueChangeOrTimeout(Bind(&SetTrue, &value)));
+  // Remove the last reference to the EvaluationContext and run the loop for
+  // 1 second to give time to the main loop to trigger the timeout Event (of 0
+  // seconds). Our callback should not be called because the EvaluationContext
+  // was removed before the timeout event is attended.
+  eval_ctx_ = NULL;
+  RunGMainLoopUntil(1000, Bind(&GetBoolean, &value));
+  EXPECT_FALSE(value);
+}
+
 }  // namespace chromeos_policy_manager
