diff --git a/src/com/android/mail/ui/AnimatedAdapter.java b/src/com/android/mail/ui/AnimatedAdapter.java
index bce9620..57848e0 100644
--- a/src/com/android/mail/ui/AnimatedAdapter.java
+++ b/src/com/android/mail/ui/AnimatedAdapter.java
@@ -220,6 +220,14 @@
         return super.getView(position, convertView, parent);
     }
 
+    @Override
+    public long getItemId(int position) {
+        if (mShowFooter && position == super.getCount()) {
+            return -1;
+        }
+        return super.getItemId(position);
+    }
+
     /**
      * Get an animating view. This happens when a list item is in the process of being removed
      * from the list (items being deleted).
@@ -253,6 +261,14 @@
         }
     }
 
+    @Override
+    public Object getItem(int position) {
+        if (mShowFooter && position == super.getCount()) {
+            return mFooter;
+        }
+        return super.getItem(position);
+    }
+
     private boolean isPositionAnimating(int position) {
         return mDeletingItems.contains(position)
                 || (mUndo && mLastDeletingItems.contains(position));
