diff --git a/buffet/dbus_bindings/com.android.Weave.Manager.dbus-xml b/buffet/dbus_bindings/com.android.Weave.Manager.dbus-xml
index dcfd344..bde226e 100644
--- a/buffet/dbus_bindings/com.android.Weave.Manager.dbus-xml
+++ b/buffet/dbus_bindings/com.android.Weave.Manager.dbus-xml
@@ -149,38 +149,6 @@
         Location of the device.
       </tp:docstring>
     </property>
-    <property name="AnonymousAccessRole" type="s" access="read">
-      <tp:docstring>
-        Max role granted to anonymous user when accessing device over the local
-        network.
-        Possible values include:
-          "none": Device does not allow local access by unauthenticated users.
-
-          "viewer": Device allows everyone authenticated to access device.
-
-          "user": Device allows everyone authenticated as 'user' to access
-                  device.
-
-          "owner": Device allows everyone authenticated as 'owner' to access
-                  device.
-      </tp:docstring>
-    </property>
-    <property name="WiFiBootstrapState" type="s" access="read">
-      <tp:docstring>
-        Contains one of the following values describing the state of WiFi
-        bootstrapping:
-          “disabled” - Bootstrapping has been disabled in the config file.
-          “waiting” - buffet is waiting to receive WiFi credentials from
-                      a paired peer.
-          “connecting” - buffet has received WiFi credentials, and is now
-                         attempting to connect to a WiFi network.
-          “monitoring” - buffet is monitoring our connectivity and will
-                         re-enable bootstrapping if connectivity fails in
-                         automatic mode.
-
-       Note: more values may be added later to this list.
-      </tp:docstring>
-    </property>
     <property name="GCDBootstrapState" type="s" access="read">
       <tp:docstring>
         Contains one of the following values describing the state of GCD
diff --git a/buffet/manager.cc b/buffet/manager.cc
index 12fd065..96f9d81 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -104,14 +104,9 @@
       &Manager::OnRegistrationChanged, weak_ptr_factory_.GetWeakPtr()));
 
   if (device_->GetPrivet()) {
-    device_->GetPrivet()->AddOnWifiSetupChangedCallback(base::Bind(
-        &Manager::UpdateWiFiBootstrapState, weak_ptr_factory_.GetWeakPtr()));
-
     device_->GetPrivet()->AddOnPairingChangedCallbacks(
         base::Bind(&Manager::OnPairingStart, weak_ptr_factory_.GetWeakPtr()),
         base::Bind(&Manager::OnPairingEnd, weak_ptr_factory_.GetWeakPtr()));
-  } else {
-    UpdateWiFiBootstrapState(weave::WifiSetupState::kDisabled);
   }
 
   dbus_adaptor_.RegisterWithDBusObject(&dbus_object_);
@@ -325,18 +320,13 @@
 }
 
 void Manager::OnConfigChanged(const weave::Settings& settings) {
-  dbus_adaptor_.SetDeviceId(settings.device_id);
+  dbus_adaptor_.SetDeviceId(settings.cloud_id);
   dbus_adaptor_.SetOemName(settings.oem_name);
   dbus_adaptor_.SetModelName(settings.model_name);
   dbus_adaptor_.SetModelId(settings.model_id);
   dbus_adaptor_.SetName(settings.name);
   dbus_adaptor_.SetDescription(settings.description);
   dbus_adaptor_.SetLocation(settings.location);
-  dbus_adaptor_.SetAnonymousAccessRole(settings.local_anonymous_access_role);
-}
-
-void Manager::UpdateWiFiBootstrapState(weave::WifiSetupState state) {
-  dbus_adaptor_.SetWiFiBootstrapState(weave::EnumToString(state));
 }
 
 void Manager::OnPairingStart(const std::string& session_id,
diff --git a/buffet/manager.h b/buffet/manager.h
index e8eb44d..aaf535d 100644
--- a/buffet/manager.h
+++ b/buffet/manager.h
@@ -114,7 +114,6 @@
   void OnStateChanged();
   void OnRegistrationChanged(weave::RegistrationStatus status);
   void OnConfigChanged(const weave::Settings& settings);
-  void UpdateWiFiBootstrapState(weave::WifiSetupState state);
   void OnPairingStart(const std::string& session_id,
                       weave::PairingType pairing_type,
                       const std::vector<uint8_t>& code);
