diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 66e8c54..a87bd19 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -340,15 +340,21 @@
         mWifiTracker.startTracking();
 
         if (!isUiRestricted() && mWifiManager.isWifiEnabled()) {
-            setProgressBarVisible(true);
-            mWifiTracker.forceUpdate();
-            if (DEBUG) Log.d(TAG, "WifiSettings onStart APs: " + mWifiTracker.getAccessPoints());
-
-            getView().removeCallbacks(mUpdateAccessPointsRunnable);
-            updateAccessPointPreferences();
+            forceUpdateAPs();
         }
     }
 
+    private void forceUpdateAPs() {
+        setProgressBarVisible(true);
+        mWifiTracker.forceUpdate();
+        if (DEBUG) {
+            Log.d(TAG, "WifiSettings force update APs: " + mWifiTracker.getAccessPoints());
+        }
+
+        getView().removeCallbacks(mUpdateAccessPointsRunnable);
+        updateAccessPointPreferences();
+    }
+
     /**
      * @return new WifiEnabler or null (as overridden by WifiSettingsForSetupWizard)
      */
@@ -661,7 +667,7 @@
         final int wifiState = mWifiManager.getWifiState();
         switch (wifiState) {
             case WifiManager.WIFI_STATE_ENABLED:
-                updateAccessPointsDelayed();
+                forceUpdateAPs();
                 break;
 
             case WifiManager.WIFI_STATE_ENABLING:
