diff --git a/res/drawable-xlarge/mini_home_screen_bg.9.png b/res/drawable-xlarge/mini_home_screen_bg.9.png
index fd989c1..ecbbcb4 100644
--- a/res/drawable-xlarge/mini_home_screen_bg.9.png
+++ b/res/drawable-xlarge/mini_home_screen_bg.9.png
Binary files differ
diff --git a/res/drawable-xlarge/mini_home_screen_bg_hover.9.png b/res/drawable-xlarge/mini_home_screen_bg_hover.9.png
index 331ad54..48af564 100644
--- a/res/drawable-xlarge/mini_home_screen_bg_hover.9.png
+++ b/res/drawable-xlarge/mini_home_screen_bg_hover.9.png
Binary files differ
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 7ae26bb..8cf7041 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -131,9 +131,11 @@
         if (LauncherApplication.isScreenXLarge()) {
             mDimmedBitmapBackground = getResources().getDrawable(
                     R.drawable.mini_home_screen_bg);
+            mDimmedBitmapBackground.setFilterBitmap(true);
 
             mDimmedBitmapBackgroundHover = getResources().getDrawable(
                     R.drawable.mini_home_screen_bg_hover);
+            mDimmedBitmapBackgroundHover.setFilterBitmap(true);
         }
 
         TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CellLayout, defStyle, 0);
@@ -196,7 +198,7 @@
             }
             mDimmedBitmapPaint.setAlpha((int) (mDimmedBitmapAlpha * 255));
 
-            canvas.drawBitmap(mDimmedBitmap, mDimmedBitmapRect, mLayoutRect, mDimmedBitmapPaint);
+            //canvas.drawBitmap(mDimmedBitmap, mDimmedBitmapRect, mLayoutRect, mDimmedBitmapPaint);
         }
     }
 
@@ -240,7 +242,7 @@
 
             // We might be in the middle or end of shrinking/fading to a dimmed view
             // Make sure this view's alpha is set the same as all the rest of the views
-            child.setAlpha(1.0f - mDimmedBitmapAlpha);
+            //child.setAlpha(1.0f - mDimmedBitmapAlpha);
 
             addView(child, index, lp);
 
@@ -629,7 +631,7 @@
             updateDimmedBitmap();
         }
         mDimmedBitmapAlpha = alpha;
-        setChildrenAlpha(1.0f - mDimmedBitmapAlpha);
+        //setChildrenAlpha(1.0f - mDimmedBitmapAlpha);
         invalidate();
     }
 
@@ -652,10 +654,10 @@
 
         // draw the screen into the bitmap
         // just for drawing to the bitmap, make all the items on the screen opaque
-        setChildrenAlpha(1.0f);
+        //setChildrenAlpha(1.0f);
         // call our superclass's dispatchdraw so we don't draw the background
         super.dispatchDraw(mDimmedBitmapCanvas);
-        setChildrenAlpha(1.0f - mDimmedBitmapAlpha);
+        //setChildrenAlpha(1.0f - mDimmedBitmapAlpha);
 
         // replace all colored areas with a dark  (semi-transparent black)
         mDimmedBitmapCanvas.drawColor(Color.argb(160, 0, 0, 0), PorterDuff.Mode.SRC_IN);
