diff --git a/libweave/include/weave/state.h b/libweave/include/weave/state.h
index 211838f..1b68343 100644
--- a/libweave/include/weave/state.h
+++ b/libweave/include/weave/state.h
@@ -13,7 +13,7 @@
 class State {
  public:
   // Sets callback which is called when stat is changed.
-  virtual void AddOnChangedCallback(const base::Closure& callback) = 0;
+  virtual void AddStateChangedCallback(const base::Closure& callback) = 0;
 
   // Returns value of the single property.
   // |name| is full property name, including package name. e.g. "base.network".
diff --git a/libweave/src/device_registration_info.cc b/libweave/src/device_registration_info.cc
index f93c652..f3484ba 100644
--- a/libweave/src/device_registration_info.cc
+++ b/libweave/src/device_registration_info.cc
@@ -243,7 +243,7 @@
   command_manager_->AddOnCommandDefChanged(
       base::Bind(&DeviceRegistrationInfo::OnCommandDefsChanged,
                  weak_factory_.GetWeakPtr()));
-  state_manager_->AddOnChangedCallback(base::Bind(
+  state_manager_->AddStateChangedCallback(base::Bind(
       &DeviceRegistrationInfo::OnStateChanged, weak_factory_.GetWeakPtr()));
 }
 
diff --git a/libweave/src/privet/cloud_delegate.cc b/libweave/src/privet/cloud_delegate.cc
index f6a1558..09836b6 100644
--- a/libweave/src/privet/cloud_delegate.cc
+++ b/libweave/src/privet/cloud_delegate.cc
@@ -59,7 +59,7 @@
     command_manager_->AddOnCommandRemovedCallback(base::Bind(
         &CloudDelegateImpl::OnCommandRemoved, weak_factory_.GetWeakPtr()));
 
-    state_manager_->AddOnChangedCallback(base::Bind(
+    state_manager_->AddStateChangedCallback(base::Bind(
         &CloudDelegateImpl::OnStateChanged, weak_factory_.GetWeakPtr()));
   }
 
diff --git a/libweave/src/states/state_manager.cc b/libweave/src/states/state_manager.cc
index 1f17307..b5da1c7 100644
--- a/libweave/src/states/state_manager.cc
+++ b/libweave/src/states/state_manager.cc
@@ -49,7 +49,7 @@
 
 StateManager::~StateManager() {}
 
-void StateManager::AddOnChangedCallback(const base::Closure& callback) {
+void StateManager::AddStateChangedCallback(const base::Closure& callback) {
   on_changed_.push_back(callback);
   callback.Run();  // Force to read current state.
 }
diff --git a/libweave/src/states/state_manager.h b/libweave/src/states/state_manager.h
index bfa43e7..56dde95 100644
--- a/libweave/src/states/state_manager.h
+++ b/libweave/src/states/state_manager.h
@@ -40,7 +40,7 @@
   ~StateManager() override;
 
   // State overrides.
-  void AddOnChangedCallback(const base::Closure& callback) override;
+  void AddStateChangedCallback(const base::Closure& callback) override;
   bool SetProperties(const base::DictionaryValue& property_set,
                      ErrorPtr* error) override;
   std::unique_ptr<base::Value> GetStateProperty(
diff --git a/libweave/src/states/state_manager_unittest.cc b/libweave/src/states/state_manager_unittest.cc
index d02b57f..184dc35 100644
--- a/libweave/src/states/state_manager_unittest.cc
+++ b/libweave/src/states/state_manager_unittest.cc
@@ -65,7 +65,7 @@
     mgr_.reset(new StateManager(&mock_state_change_queue_));
 
     EXPECT_CALL(*this, OnStateChanged()).Times(1);
-    mgr_->AddOnChangedCallback(
+    mgr_->AddStateChangedCallback(
         base::Bind(&StateManagerTest::OnStateChanged, base::Unretained(this)));
 
     LoadStateDefinition(GetTestSchema().get(), "default", nullptr);
