diff --git a/modem_cdma_proxy.cc b/modem_cdma_proxy.cc
index 1311cb0..472e6d1 100644
--- a/modem_cdma_proxy.cc
+++ b/modem_cdma_proxy.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -6,6 +6,8 @@
 
 #include <base/logging.h>
 
+#include "cellular_error.h"
+
 using std::string;
 
 namespace shill {
@@ -18,8 +20,9 @@
 
 ModemCDMAProxy::~ModemCDMAProxy() {}
 
-uint32 ModemCDMAProxy::Activate(const string &carrier) {
-  return proxy_.Activate(carrier);
+void ModemCDMAProxy::Activate(const string &carrier,
+                                AsyncCallHandler *call_handler, int timeout) {
+  proxy_.Activate(carrier, call_handler, timeout);
 }
 
 void ModemCDMAProxy::GetRegistrationState(uint32 *cdma_1x_state,
@@ -32,6 +35,7 @@
 }
 
 const string ModemCDMAProxy::MEID() {
+  LOG(INFO) << "ModemCDMAProxy::" << __func__;
   return proxy_.Meid();
 }
 
@@ -66,4 +70,14 @@
   delegate_->OnCDMARegistrationStateChanged(cdma_1x_state, evdo_state);
 }
 
+void ModemCDMAProxy::Proxy::ActivateCallback(const uint32 &status,
+                                             const DBus::Error &dberror,
+                                             void *data) {
+  VLOG(2) << __func__ << "(" << status << ")";
+  AsyncCallHandler *call_handler = reinterpret_cast<AsyncCallHandler *>(data);
+  Error error;
+  CellularError::FromDBusError(dberror, &error),
+  delegate_->OnActivateCallback(status, error, call_handler);
+}
+
 }  // namespace shill
