diff --git a/binder_service_android.cc b/binder_service_android.cc
index 91a2970..e179c62 100644
--- a/binder_service_android.cc
+++ b/binder_service_android.cc
@@ -63,13 +63,15 @@
     const android::sp<IUpdateEngineCallback>& callback, bool* return_value) {
   callbacks_.emplace_back(callback);
 
+  const android::sp<IBinder>& callback_binder =
+      IUpdateEngineCallback::asBinder(callback);
   auto binder_wrapper = android::BinderWrapper::Get();
   binder_wrapper->RegisterForDeathNotifications(
-      IUpdateEngineCallback::asBinder(callback),
+      callback_binder,
       base::Bind(
           base::IgnoreResult(&BinderUpdateEngineAndroidService::UnbindCallback),
           base::Unretained(this),
-          base::Unretained(callback.get())));
+          base::Unretained(callback_binder.get())));
 
   // Send an status update on connection (except when no update sent so far),
   // since the status update is oneway and we don't need to wait for the
@@ -83,11 +85,12 @@
 
 Status BinderUpdateEngineAndroidService::unbind(
     const android::sp<IUpdateEngineCallback>& callback, bool* return_value) {
+  const android::sp<IBinder>& callback_binder =
+      IUpdateEngineCallback::asBinder(callback);
   auto binder_wrapper = android::BinderWrapper::Get();
-  binder_wrapper->UnregisterForDeathNotifications(
-      IUpdateEngineCallback::asBinder(callback));
+  binder_wrapper->UnregisterForDeathNotifications(callback_binder);
 
-  *return_value = UnbindCallback(callback.get());
+  *return_value = UnbindCallback(callback_binder.get());
   return Status::ok();
 }
 
@@ -139,14 +142,13 @@
   return Status::ok();
 }
 
-bool BinderUpdateEngineAndroidService::UnbindCallback(
-    IUpdateEngineCallback* callback) {
-  auto it =
-      std::find_if(callbacks_.begin(),
-                   callbacks_.end(),
-                   [&callback](const android::sp<IUpdateEngineCallback>& elem) {
-                     return elem.get() == callback;
-                   });
+bool BinderUpdateEngineAndroidService::UnbindCallback(const IBinder* callback) {
+  auto it = std::find_if(
+      callbacks_.begin(),
+      callbacks_.end(),
+      [&callback](const android::sp<IUpdateEngineCallback>& elem) {
+        return IUpdateEngineCallback::asBinder(elem).get() == callback;
+      });
   if (it == callbacks_.end()) {
     LOG(ERROR) << "Unable to unbind unknown callback.";
     return false;
diff --git a/binder_service_android.h b/binder_service_android.h
index 375dad4..7d66fcc 100644
--- a/binder_service_android.h
+++ b/binder_service_android.h
@@ -73,7 +73,7 @@
   // Remove the passed |callback| from the list of registered callbacks. Called
   // on unbind() or whenever the callback object is destroyed.
   // Returns true on success.
-  bool UnbindCallback(android::os::IUpdateEngineCallback* callback);
+  bool UnbindCallback(const IBinder* callback);
 
   // List of currently bound callbacks.
   std::vector<android::sp<android::os::IUpdateEngineCallback>> callbacks_;
