diff --git a/res/drawable-hdpi/hand.png b/res/drawable-hdpi/hand.png
index 4a73f2b..bd4f6df 100644
--- a/res/drawable-hdpi/hand.png
+++ b/res/drawable-hdpi/hand.png
Binary files differ
diff --git a/res/drawable-mdpi/hand.png b/res/drawable-mdpi/hand.png
index eb280e3..fe5a035 100644
--- a/res/drawable-mdpi/hand.png
+++ b/res/drawable-mdpi/hand.png
Binary files differ
diff --git a/res/drawable-xhdpi/hand.png b/res/drawable-xhdpi/hand.png
index aaaad37..35b678c 100644
--- a/res/drawable-xhdpi/hand.png
+++ b/res/drawable-xhdpi/hand.png
Binary files differ
diff --git a/res/layout-port/all_apps_cling.xml b/res/layout-port/all_apps_cling.xml
index e0dcf81..09414ce 100644
--- a/res/layout-port/all_apps_cling.xml
+++ b/res/layout-port/all_apps_cling.xml
@@ -21,7 +21,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_marginLeft="20dp"
-        android:layout_marginTop="90dp">
+        android:layout_marginTop="20dp">
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
diff --git a/res/layout-port/folder_cling.xml b/res/layout-port/folder_cling.xml
index d2374bf..9a7969c 100644
--- a/res/layout-port/folder_cling.xml
+++ b/res/layout-port/folder_cling.xml
@@ -21,7 +21,8 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_marginLeft="20dp"
-        android:layout_marginTop="100dp">
+        android:layout_marginRight="10dp"
+        android:layout_marginTop="70dp">
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -32,22 +33,12 @@
                 android:text="@string/folder_cling_title" />
             <TextView
                 style="@style/ClingText"
-                android:id="@+id/folder_cling_move_item"
-                android:layout_width="285dp"
+                android:id="@+id/folder_cling_create_folder"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:text="@string/folder_cling_move_item" />
+                android:text="@string/folder_cling_create_folder" />
         </LinearLayout>
     </FrameLayout>
-    <TextView
-        style="@style/ClingText"
-        android:id="@+id/folder_cling_create_folder"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginLeft="20dp"
-        android:layout_marginRight="20dp"
-        android:layout_marginBottom="65dp"
-        android:layout_gravity="bottom"
-        android:text="@string/folder_cling_create_folder" />
     <Button
         style="@style/ClingButton"
         android:id="@+id/cling_dismiss"
diff --git a/res/values-port/dimens.xml b/res/values-port/dimens.xml
index 1c8282d..2b4635c 100644
--- a/res/values-port/dimens.xml
+++ b/res/values-port/dimens.xml
@@ -33,7 +33,7 @@
     <dimen name="apps_customize_pageLayoutPaddingLeft">5dp</dimen>
     <dimen name="apps_customize_pageLayoutPaddingRight">5dp</dimen>
     <integer name="apps_customize_cling_focused_x">1</integer>
-    <integer name="apps_customize_cling_focused_y">2</integer>
+    <integer name="apps_customize_cling_focused_y">1</integer>
 
     <dimen name="apps_customize_widget_cell_width_gap">20dp</dimen>
     <dimen name="apps_customize_widget_cell_height_gap">10dp</dimen>
diff --git a/src/com/android/launcher2/Cling.java b/src/com/android/launcher2/Cling.java
index 09c5062..0a9bc7f 100644
--- a/src/com/android/launcher2/Cling.java
+++ b/src/com/android/launcher2/Cling.java
@@ -198,7 +198,7 @@
                 if (mHandTouchGraphic == null) {
                     mHandTouchGraphic = getResources().getDrawable(R.drawable.hand);
                 }
-                int offset = -mAppIconSize / 4;
+                int offset = mAppIconSize / 4;
                 mHandTouchGraphic.setBounds(cx + offset, cy + offset,
                         cx + mHandTouchGraphic.getIntrinsicWidth() + offset,
                         cy + mHandTouchGraphic.getIntrinsicHeight() + offset);
diff --git a/src/com/android/launcher2/Folder.java b/src/com/android/launcher2/Folder.java
index a1aa670..f44d3ed 100644
--- a/src/com/android/launcher2/Folder.java
+++ b/src/com/android/launcher2/Folder.java
@@ -405,6 +405,11 @@
             @Override
             public void onAnimationEnd(Animator animation) {
                 mState = STATE_OPEN;
+
+                Cling cling = mLauncher.showFirstRunFoldersCling();
+                if (cling != null) {
+                    cling.bringToFront();
+                }
             }
         });
         oa.setDuration(mExpandDuration);
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 3c2c3da..e4ed31f 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -77,10 +77,10 @@
 import android.view.View;
 import android.view.View.OnLongClickListener;
 import android.view.ViewGroup;
-import android.view.ViewParent;
 import android.view.WindowManager;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.animation.AccelerateDecelerateInterpolator;
+import android.view.animation.AccelerateInterpolator;
 import android.view.animation.DecelerateInterpolator;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.Advanceable;
@@ -162,7 +162,7 @@
     static final int APPWIDGET_HOST_ID = 1024;
     private static final int EXIT_SPRINGLOADED_MODE_SHORT_TIMEOUT = 300;
     private static final int EXIT_SPRINGLOADED_MODE_LONG_TIMEOUT = 600;
-    private static final int SHOW_CLING_DURATION = 250;
+    private static final int SHOW_CLING_DURATION = 550;
     private static final int DISMISS_CLING_DURATION = 250;
 
     private static final Object sLock = new Object();
@@ -1770,8 +1770,6 @@
         final FolderInfo info = folderIcon.mInfo;
         Folder openFolder = mWorkspace.getFolderForTag(info);
 
-        Cling cling = showFirstRunFoldersCling();
-
         // If the folder info reports that the associated folder is open, then verify that
         // it is actually opened. There have been a few instances where this gets out of sync.
         if (info.opened && openFolder == null) {
@@ -1800,10 +1798,6 @@
                 }
             }
         }
-
-        if (cling != null) {
-            cling.bringToFront();
-        }
     }
 
     private void growAndFadeOutFolderIcon(FolderIcon fi) {
@@ -3102,7 +3096,7 @@
                 cling.setAlpha(0f);
                 cling.animate()
                     .alpha(1f)
-                    .setInterpolator(new DecelerateInterpolator())
+                    .setInterpolator(new AccelerateInterpolator())
                     .setDuration(SHOW_CLING_DURATION)
                     .setStartDelay(delay)
                     .start();
