diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index eb8b2f8..7c6742f 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -528,7 +528,7 @@
             PagedViewIcon icon = (PagedViewIcon) mLayoutInflater.inflate(
                     R.layout.apps_customize_application, layout, false);
             icon.applyFromApplicationInfo(
-                    info, mPageViewIconCache, true, isHardwareAccelerated() && (numPages > 1));
+                    info, mPageViewIconCache, true, (numPages > 1));
             icon.setOnClickListener(this);
             icon.setOnLongClickListener(this);
             icon.setOnTouchListener(this);
@@ -699,6 +699,7 @@
 
         // Calculate the dimensions of each cell we are giving to each widget
         int numWidgetsPerPage = mWidgetCountX * mWidgetCountY;
+        int numPages = (int) Math.ceil(mWidgets.size() / (float) numWidgetsPerPage);
         int offset = page * numWidgetsPerPage;
         int cellWidth = ((mWidgetSpacingLayout.getContentWidth() - mPageLayoutWidthGap
                 - ((mWidgetCountX - 1) * mCellWidthGap)) / mWidgetCountX);
@@ -717,7 +718,8 @@
                         info.minHeight, null);
                 FastBitmapDrawable preview = getWidgetPreview(info, cellSpans[0], cellSpans[1],
                         cellWidth, cellHeight);
-                widget.applyFromAppWidgetProviderInfo(info, preview, -1, cellSpans, null, false);
+                widget.applyFromAppWidgetProviderInfo(info, preview, -1, cellSpans, 
+                        mPageViewIconCache, (numPages > 1));
                 widget.setTag(createItemInfo);
             } else if (rawInfo instanceof ResolveInfo) {
                 // Fill in the shortcuts information
@@ -727,7 +729,8 @@
                 createItemInfo.componentName = new ComponentName(info.activityInfo.packageName,
                         info.activityInfo.name);
                 FastBitmapDrawable preview = getShortcutPreview(info, cellWidth, cellHeight);
-                widget.applyFromResolveInfo(mPackageManager, info, preview, null, false);
+                widget.applyFromResolveInfo(mPackageManager, info, preview, mPageViewIconCache, 
+                        (numPages > 1));
                 widget.setTag(createItemInfo);
             }
             widget.setOnClickListener(this);
