diff --git a/res/xml/default_workspace.xml b/res/xml/default_workspace.xml
index b02e0fd..0519a48 100644
--- a/res/xml/default_workspace.xml
+++ b/res/xml/default_workspace.xml
@@ -43,15 +43,6 @@
         launcher:spanX="4"
         launcher:spanY="1" />
 
-    <appwidget
-        launcher:packageName="com.android.vending"
-        launcher:className="com.android.vending.MarketWidgetProvider"
-        launcher:screen="3"
-        launcher:x="1"
-        launcher:y="1"
-        launcher:spanX="2"
-        launcher:spanY="2" />
-
     <!--  Far-right screen [4] -->
 
 </favorites>
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 2359e32..fd389ca 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -488,7 +488,7 @@
                 bg = mini ? mActiveBackgroundMini : mActiveGlowBackground;
             } else if (mIsDragOccuring && mAcceptsDrops) {
                 bg = mini ? mActiveBackgroundMini : mActiveBackground;
-            } else if (mIsDefaultDropTarget) {
+            } else if (mIsDragOccuring && mIsDefaultDropTarget) {
                 bg = mini ? mNormalGlowBackgroundMini : mNormalGlowBackground;
             } else {
                 bg = mini ? mNormalBackgroundMini : mNormalBackground;
@@ -963,14 +963,10 @@
                     if (lp.animateDrop) {
                         lp.animateDrop = false;
 
-                        // This call needs to be posted since it results in a requestLayout()
-                        // which shouldn't be called from within a layout pass (can cause a bad
-                        // state of the tree).
-                        post(new Runnable() {
-                            public void run() {
-                                ((Workspace) mParent).animateViewIntoPosition(child);
-                            }
-                        });
+                        // This call does not result in a requestLayout(), but at one point did.
+                        // We need to be cautious about any method calls within the layout pass
+                        // to insure we don't leave the view tree in a bad state.
+                        ((Workspace) mParent).animateViewIntoPosition(child);
                     }
                 }
             }
@@ -1392,7 +1388,7 @@
             lp.isDragging = false;
             lp.dropped = true;
             lp.animateDrop = animate;
-            child.setVisibility(View.VISIBLE);
+            child.setVisibility(View.INVISIBLE);
             child.requestLayout();
         }
     }
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 1085083..9fcd1b4 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -1298,6 +1298,9 @@
             for (int i = 0; i < screenCount; i++) {
                 final CellLayout cl = (CellLayout)getChildAt(i);
                 float finalAlphaValue = (i == mCurrentPage) ? 1.0f : 0.0f;
+                float finalAlphaMultiplierValue =
+                        ((i == mCurrentPage) && (mShrinkState != ShrinkState.SPRING_LOADED)) ?
+                        0.0f : 1.0f;
                 float rotation = 0.0f;
 
                 if (i < mCurrentPage) {
@@ -1315,6 +1318,8 @@
                             PropertyValuesHolder.ofFloat("scaleX", finalScaleFactor),
                             PropertyValuesHolder.ofFloat("scaleY", finalScaleFactor),
                             PropertyValuesHolder.ofFloat("backgroundAlpha", finalBackgroundAlpha),
+                            PropertyValuesHolder.ofFloat("backgroundAlphaMultiplier",
+                                    finalAlphaMultiplierValue),
                             PropertyValuesHolder.ofFloat("alpha", finalAlphaValue),
                             PropertyValuesHolder.ofFloat("rotationY", rotation));
                     animWithInterpolator.setDuration(duration);
@@ -1326,6 +1331,7 @@
                     cl.setScaleX(finalScaleFactor);
                     cl.setScaleY(finalScaleFactor);
                     cl.setBackgroundAlpha(0.0f);
+                    cl.setBackgroundAlphaMultiplier(finalAlphaMultiplierValue);
                     cl.setAlpha(finalAlphaValue);
                     cl.setRotationY(rotation);
                     mUnshrinkAnimationListener.onAnimationEnd(null);
@@ -1516,6 +1522,10 @@
         lp.oldY = viewY - (parent.getTop() - mScrollY);
     }
 
+    /*
+     * We should be careful that this method cannot result in any synchronous requestLayout()
+     * calls, as it is called from onLayout().
+     */
     public void animateViewIntoPosition(final View view) {
         final CellLayout parent = (CellLayout) view.getParent();
         final CellLayout.LayoutParams lp = (CellLayout.LayoutParams) view.getLayoutParams();
@@ -1574,7 +1584,6 @@
             }
         });
 
-        view.setVisibility(View.INVISIBLE);
         mDropAnim.start();
     }
 
