diff --git a/src/com/android/settings/wifi/details/WifiMeteredPreferenceController.java b/src/com/android/settings/wifi/details/WifiMeteredPreferenceController.java
index 1a3d195..3a515cc 100644
--- a/src/com/android/settings/wifi/details/WifiMeteredPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiMeteredPreferenceController.java
@@ -63,7 +63,9 @@
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
-        mWifiConfiguration.meteredOverride = Integer.parseInt((String) newValue);
+        if (mWifiConfiguration != null) {
+            mWifiConfiguration.meteredOverride = Integer.parseInt((String) newValue);
+        }
         mWifiManager.updateNetwork(mWifiConfiguration);
         // Stage the backup of the SettingsProvider package which backs this up
         BackupManager.dataChanged("com.android.providers.settings");
@@ -73,8 +75,11 @@
 
     @VisibleForTesting
     int getMeteredOverride() {
-        // Wrap the meteredOverride since robolectric cannot recognize it
-        return mWifiConfiguration.meteredOverride;
+        if (mWifiConfiguration != null) {
+            // Wrap the meteredOverride since robolectric cannot recognize it
+            return mWifiConfiguration.meteredOverride;
+        }
+        return WifiConfiguration.METERED_OVERRIDE_NONE;
     }
 
     private void updateSummary(DropDownPreference preference, int meteredOverride) {
diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiMeteredPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiMeteredPreferenceControllerTest.java
index b3e5cb5..00a4a94 100644
--- a/tests/robotests/src/com/android/settings/wifi/details/WifiMeteredPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/details/WifiMeteredPreferenceControllerTest.java
@@ -83,4 +83,12 @@
 
         assertThat(mDropDownPreference.getEntry()).isEqualTo("Detect automatically");
     }
+
+    @Test
+    public void testController_resilientToNullConfig() {
+        mPreferenceController = spy(new WifiMeteredPreferenceController(mContext, null));
+
+        mPreferenceController.getMeteredOverride();
+        mPreferenceController.onPreferenceChange(mDropDownPreference, new Integer(1));
+    }
 }
