diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index f7e5dcd..a4aa60f 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -329,7 +329,9 @@
         public void handleMessage(Message msg) {
             switch (msg.what) {
                 case MSG_BUILD_CATEGORIES: {
-                    buildDashboardCategories(mCategories);
+                    if(mNeedToRebuildCategories) {
+                        buildDashboardCategories(mCategories);
+                    }
                 } break;
             }
         }
@@ -346,7 +348,7 @@
     }
 
     public List<DashboardCategory> getDashboardCategories() {
-        if (mNeedToRebuildCategories) {
+        if (mNeedToRebuildCategories || mCategories.size() == 0) {
             buildDashboardCategories(mCategories);
             mNeedToRebuildCategories = false;
         }
@@ -497,16 +499,11 @@
                 switchToFragment( initialFragmentName, initialArguments, true, false,
                         mInitialTitle, false);
             } else {
-                // We need to build the Categories in all cases
-                buildDashboardCategories(mCategories);
-
                 // No UP if we are displaying the main Dashboard
                 mDisplayHomeAsUpEnabled = false;
-                if (mCategories.size() > 0) {
-                    mInitialTitle = getText(R.string.dashboard_title);
-                    switchToFragment(DashboardSummary.class.getName(), null, false, false,
-                            mInitialTitle, false);
-                }
+                mInitialTitle = getText(R.string.dashboard_title);
+                switchToFragment(DashboardSummary.class.getName(), null, false, false,
+                        mInitialTitle, false);
             }
         }
 
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index faafad1..73dcd17 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -27,6 +27,7 @@
 import android.os.Handler;
 import android.os.Message;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -79,6 +80,7 @@
     }
 
     private void rebuildUI(Context context) {
+        long start = System.currentTimeMillis();
         final Resources res = getResources();
 
         mDashboard.removeAllViews();
@@ -116,6 +118,8 @@
             // Add the category
             mDashboard.addView(categoryView);
         }
+        long delta = System.currentTimeMillis() - start;
+        Log.d(LOG_TAG, "rebuildUI took: " + delta + " ms");
     }
 
     @Override
