diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index fb2f0ac..b193104 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -470,6 +470,7 @@
             ArrayList<DashboardCategory> categories =
                     savedState.getParcelableArrayList(SAVE_KEY_CATEGORIES);
             if (categories != null) {
+                mCategories.clear();
                 mCategories.addAll(categories);
                 setTitleFromBackStack();
             }
@@ -816,7 +817,7 @@
      * @param categories The list in which to place the tiles categories.
      */
     private void buildDashboardCategories(List<DashboardCategory> categories) {
-        mCategories.clear();
+        categories.clear();
         loadCategoriesFromResource(R.xml.dashboard_categories, categories);
         updateTilesList(categories);
     }
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index bd4b254..faafad1 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -75,8 +75,6 @@
 
         mAuthHelper = ((SettingsActivity) context).getAuthenticatorHelper();
 
-        rebuildUI(getActivity());
-
         return rootView;
     }
 
@@ -121,13 +119,15 @@
     }
 
     @Override
-    public void onStart() {
-        super.onStart();
+    public void onResume() {
+        super.onResume();
 
         if (!mAccountListenerAdded) {
             AccountManager.get(getActivity()).addOnAccountsUpdatedListener(this, null, false);
             mAccountListenerAdded = true;
         }
+
+        rebuildCategories();
     }
 
     @Override
