diff --git a/src/com/android/gallery3d/filtershow/HistoryAdapter.java b/src/com/android/gallery3d/filtershow/HistoryAdapter.java
index 1d47160..79460be 100644
--- a/src/com/android/gallery3d/filtershow/HistoryAdapter.java
+++ b/src/com/android/gallery3d/filtershow/HistoryAdapter.java
@@ -133,21 +133,8 @@
     }
 
     public void addHistoryItem(ImagePreset preset) {
-        if (canAddHistoryItem(preset)) {
-            insert(preset, 0);
-            updateMenuItems();
-        }
-    }
-
-    public boolean canAddHistoryItem(ImagePreset preset) {
-        if (getCount() > 0 && getCurrent().same(preset)) {
-            // we may still want to insert if the previous
-            // history element isn't the same
-            if (getLast().historyName().equalsIgnoreCase(preset.historyName())) {
-                return false;
-            }
-        }
-        return true;
+        insert(preset, 0);
+        updateMenuItems();
     }
 
     @Override
@@ -164,9 +151,6 @@
             }
             mCurrentPresetPosition = position;
             this.notifyDataSetChanged();
-            if (!canAddHistoryItem(preset)) {
-                return;
-            }
         }
         super.insert(preset, position);
         mCurrentPresetPosition = position;
