diff --git a/src/com/android/contacts/widget/TransitionAnimationView.java b/src/com/android/contacts/widget/TransitionAnimationView.java
index d0e81fe..4721c5f 100644
--- a/src/com/android/contacts/widget/TransitionAnimationView.java
+++ b/src/com/android/contacts/widget/TransitionAnimationView.java
@@ -105,7 +105,11 @@
     @Override
     protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
         super.onLayout(changed, left, top, right, bottom);
-        if (changed) {
+        if (changed || mPreviousStateBitmap == null) {
+            if (mPreviousStateBitmap != null) {
+                mPreviousStateBitmap.recycle();
+                mPreviousStateBitmap = null;
+            }
             int width = right - left;
             int height = bottom - top;
             if (width > 0 && height > 0) {
@@ -117,11 +121,21 @@
                         width - mClipMargins.right, height - mClipMargins.bottom);
             } else {
                 mPreviousStateBitmap = null;
-                mPreviousStateView = null;
+                mPreviousStateView.setBackgroundDrawable(null);
             }
         }
     }
 
+    @Override
+    protected void onDetachedFromWindow() {
+        super.onDetachedFromWindow();
+        mPreviousStateView.setBackgroundDrawable(null);
+        if (mPreviousStateBitmap != null) {
+            mPreviousStateBitmap.recycle();
+            mPreviousStateBitmap = null;
+        }
+    }
+
     public static void startAnimation(View view, boolean closing) {
         TransitionAnimationView container = null;
         ViewParent parent = view.getParent();
