diff --git a/dbus_service.cc b/dbus_service.cc
index 65023e9..97ce226 100644
--- a/dbus_service.cc
+++ b/dbus_service.cc
@@ -108,7 +108,7 @@
 }
 
 gboolean update_engine_service_attempt_rollback(UpdateEngineService* self,
-                                                bool powerwash,
+                                                gboolean powerwash,
                                                 GError **error) {
   LOG(INFO) << "Attempting rollback to non-active partitions.";
   return self->system_state_->update_attempter()->Rollback(powerwash, NULL);
@@ -157,7 +157,7 @@
 
 gboolean update_engine_service_set_channel(UpdateEngineService* self,
                                            gchar* target_channel,
-                                           bool is_powerwash_allowed,
+                                           gboolean is_powerwash_allowed,
                                            GError **error) {
   if (!target_channel)
     return FALSE;
@@ -195,7 +195,7 @@
 }
 
 gboolean update_engine_service_get_channel(UpdateEngineService* self,
-                                           bool get_current_channel,
+                                           gboolean get_current_channel,
                                            gchar** channel,
                                            GError **error) {
   chromeos_update_engine::OmahaRequestParams* rp =
@@ -258,7 +258,7 @@
 
 gboolean update_engine_service_set_update_over_cellular_permission(
     UpdateEngineService* self,
-    bool allowed,
+    gboolean allowed,
     GError **error) {
   set<string> allowed_types;
   const policy::DevicePolicy* device_policy =
@@ -303,7 +303,7 @@
 
 gboolean update_engine_service_get_update_over_cellular_permission(
     UpdateEngineService* self,
-    bool* allowed,
+    gboolean* allowed,
     GError **/*error*/) {
   chromeos_update_engine::ConnectionManager* cm =
       self->system_state_->connection_manager();
diff --git a/dbus_service.h b/dbus_service.h
index 27210f6..e99caef 100644
--- a/dbus_service.h
+++ b/dbus_service.h
@@ -52,7 +52,7 @@
                                               GError **error);
 
 gboolean update_engine_service_attempt_rollback(UpdateEngineService* self,
-                                                bool powerwash,
+                                                gboolean powerwash,
                                                 GError **error);
 
 gboolean update_engine_service_reset_status(UpdateEngineService* self,
@@ -79,7 +79,7 @@
 // currently has).
 gboolean update_engine_service_set_channel(UpdateEngineService* self,
                                            gchar* target_channel,
-                                           bool is_powerwash_allowed,
+                                           gboolean is_powerwash_allowed,
                                            GError **error);
 
 // If get_current_channel is set to true, populates |channel| with the name of
@@ -87,7 +87,7 @@
 // the name of the channel the device is supposed to be (in case of a pending
 // channel change).
 gboolean update_engine_service_get_channel(UpdateEngineService* self,
-                                           bool get_current_channel,
+                                           gboolean get_current_channel,
                                            gchar** channel,
                                            GError **error);
 
@@ -110,7 +110,7 @@
 // error since this setting is overridden by the applied policy.
 gboolean update_engine_service_set_update_over_cellular_permission(
     UpdateEngineService* self,
-    bool allowed,
+    gboolean allowed,
     GError **error);
 
 // Returns the current value of the update over cellular network setting, either
@@ -118,7 +118,7 @@
 // preference otherwise.
 gboolean update_engine_service_get_update_over_cellular_permission(
     UpdateEngineService* self,
-    bool* allowed,
+    gboolean* allowed,
     GError **error);
 
 gboolean update_engine_service_emit_status_update(
