diff --git a/supplicant_interface_proxy.cc b/supplicant_interface_proxy.cc
index 807ccf0..ad581a2 100644
--- a/supplicant_interface_proxy.cc
+++ b/supplicant_interface_proxy.cc
@@ -92,7 +92,8 @@
   try {
     return proxy_.RemoveNetwork(network);
   } catch (const DBus::Error &e) {
-    LOG(FATAL) << "DBus exception: " << e.name() << ": " << e.what();
+    LOG(ERROR) << "DBus exception: " << e.name() << ": " << e.what();
+    throw;  // Re-throw the exception.
   }
 }
 
diff --git a/wifi.cc b/wifi.cc
index 8ff1e78..f32d12d 100644
--- a/wifi.cc
+++ b/wifi.cc
@@ -381,7 +381,7 @@
                    << service->friendly_name() << ": "
                    << "could not find supplicant network to disable.";
     } else {
-      supplicant_interface_proxy_->RemoveNetwork(rpcid_it->second);
+      RemoveNetwork(rpcid_it->second);
     }
     current_service_ = NULL;
   }
@@ -390,6 +390,15 @@
         current_service_.get() != pending_service_.get());
 }
 
+bool WiFi::RemoveNetwork(const ::DBus::Path &network) {
+  try {
+    supplicant_interface_proxy_->RemoveNetwork(network);
+  } catch (const DBus::Error &e) {  // NOLINT
+    return false;
+  }
+  return true;
+}
+
 bool WiFi::IsIdle() const {
   return !current_service_ && !pending_service_;
 }
@@ -592,7 +601,9 @@
   } else {
     // TODO(quiche): Reconsider giving up immediately. Maybe give
     // wpa_supplicant some time to retry, first.
-    supplicant_interface_proxy_->RemoveNetwork(rpcid_it->second);
+    if (!RemoveNetwork(rpcid_it->second)) {
+      LOG(FATAL) << "RemoveNetwork for " << rpcid_it->second << " failed.";
+    }
   }
 
   SLOG(WiFi, 2) << "WiFi " << link_name() << " disconnected from "
diff --git a/wifi.h b/wifi.h
index a5baa1a..49b97f0 100644
--- a/wifi.h
+++ b/wifi.h
@@ -253,6 +253,9 @@
       uint16(WiFi::*get)(Error *error),
       void(WiFi::*set)(const uint16 &value, Error *error));
 
+  // Remove a network entry from wpa_supplicant, and catch any exception
+  // that occurs.  Returns false if an exception occurred, true otherwise.
+  bool RemoveNetwork(const ::DBus::Path &network);
   // Restart fast scanning after disconnection.
   void RestartFastScanAttempts();
   // Schedules a scan attempt at time |scan_interval_seconds_| in the
