diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index 73dcd17..4aee7be 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -49,12 +49,12 @@
     private AuthenticatorHelper mAuthHelper;
     private boolean mAccountListenerAdded;
 
-    private static final int MSG_BUILD_CATEGORIES = 1;
+    private static final int MSG_REBUILD_UI = 1;
     private Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
             switch (msg.what) {
-                case MSG_BUILD_CATEGORIES: {
+                case MSG_REBUILD_UI: {
                     final Context context = getActivity();
                     rebuildUI(context);
                 } break;
@@ -80,6 +80,11 @@
     }
 
     private void rebuildUI(Context context) {
+        if (!isAdded()) {
+            Log.w(LOG_TAG, "Cannot build the DashboardSummary UI yet as the Fragment is not added");
+            return;
+        }
+
         long start = System.currentTimeMillis();
         final Resources res = getResources();
 
@@ -131,7 +136,7 @@
             mAccountListenerAdded = true;
         }
 
-        rebuildCategories();
+        sendRebuildUI();
     }
 
     @Override
@@ -176,9 +181,9 @@
         }
     }
 
-    private void rebuildCategories() {
-        if (!mHandler.hasMessages(MSG_BUILD_CATEGORIES)) {
-            mHandler.sendEmptyMessage(MSG_BUILD_CATEGORIES);
+    private void sendRebuildUI() {
+        if (!mHandler.hasMessages(MSG_REBUILD_UI)) {
+            mHandler.sendEmptyMessage(MSG_REBUILD_UI);
         }
     }
 
@@ -186,6 +191,6 @@
     public void onAccountsUpdated(Account[] accounts) {
         final SettingsActivity sa = (SettingsActivity) getActivity();
         sa.setNeedToRebuildCategories(true);
-        rebuildCategories();
+        sendRebuildUI();
     }
 }
