diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index c1e4f6addf35c25b879a2b113058f0572253c466..ff78bd1b93986f2fa897d145b5fc768be1f90d52 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -231,6 +231,11 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
         mGeometryButton = (ImageButton) findViewById(R.id.geometryButton);
         mColorsButton = (ImageButton) findViewById(R.id.colorsButton);
 
+        mBottomPanelButtons.add(mFxButton);
+        mBottomPanelButtons.add(mBorderButton);
+        mBottomPanelButtons.add(mGeometryButton);
+        mBottomPanelButtons.add(mColorsButton);
+
         mImageShow.setImageLoader(mImageLoader);
         mImageCurves.setImageLoader(mImageLoader);
         mImageCurves.setMaster(mImageShow);
@@ -796,6 +801,22 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
         }
     }
 
+    public void disableFilterButtons() {
+        for (ImageButton b : mBottomPanelButtons) {
+            b.setEnabled(false);
+            b.setClickable(false);
+            b.setAlpha(0.4f);
+        }
+    }
+
+    public void enableFilterButtons() {
+        for (ImageButton b : mBottomPanelButtons) {
+            b.setEnabled(true);
+            b.setClickable(true);
+            b.setAlpha(1.0f);
+        }
+    }
+
     // //////////////////////////////////////////////////////////////////////////////
     // imageState panel...
 
@@ -877,7 +898,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
         invalidateOptionsMenu();
     }
 
-    private void resetHistory() {
+    void resetHistory() {
         mNullFxFilter.onClick(mNullFxFilter);
         mNullBorderFilter.onClick(mNullBorderFilter);
 
diff --git a/src/com/android/gallery3d/filtershow/PanelController.java b/src/com/android/gallery3d/filtershow/PanelController.java
index 52bf98aa7241b5b4e95ab8c65b59f4f7cbd9a81a..e92c54936065fa256786053f45cf7b31e0c8f5e5 100644
--- a/src/com/android/gallery3d/filtershow/PanelController.java
+++ b/src/com/android/gallery3d/filtershow/PanelController.java
@@ -56,6 +56,7 @@ public class PanelController implements OnClickListener {
     private static int HORIZONTAL_MOVE = 1;
     private static final int ANIM_DURATION = 200;
     private static final String LOGTAG = "PanelController";
+    private boolean mDisableFilterButtons = false;
 
     class Panel {
         private final View mView;
@@ -345,6 +346,10 @@ public class PanelController implements OnClickListener {
             mCurrentImage.resetParameter();
             mCurrentImage.select();
         }
+        if (mDisableFilterButtons) {
+            mActivity.enableFilterButtons();
+            mDisableFilterButtons = false;
+        }
     }
 
     public boolean onBackPressed() {
@@ -356,6 +361,11 @@ public class PanelController implements OnClickListener {
         mMasterImage.onItemClick(position);
         showPanel(mCurrentPanel);
         mCurrentImage.select();
+        if (mDisableFilterButtons) {
+            mActivity.enableFilterButtons();
+            mActivity.resetHistory();
+            mDisableFilterButtons = false;
+        }
         return false;
     }
 
@@ -593,6 +603,10 @@ public class PanelController implements OnClickListener {
                 String ename = mCurrentImage.getContext().getString(R.string.tinyplanet);
                 mUtilityPanel.setEffectName(ename);
                 ensureFilter(ename);
+                if (!mDisableFilterButtons) {
+                    mActivity.disableFilterButtons();
+                    mDisableFilterButtons = true;
+                }
                 break;
             }
             case R.id.straightenButton: {