diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index b8b4461..0ef4fba 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -231,7 +231,7 @@
         <activity
             android:name="com.android.gallery3d.filtershow.FilterShowActivity"
             android:label="@string/title_activity_filter_show"
-            android:theme="@style/Theme.Gallery"
+            android:theme="@style/Theme.FilterShow"
             android:configChanges="keyboardHidden|orientation|screenSize">
             <intent-filter>
                 <action android:name="android.intent.action.EDIT" />
diff --git a/res/drawable/filtershow_border_grunge.9.png b/res/drawable/filtershow_border_grunge.9.png
new file mode 100644
index 0000000..fa2d474
--- /dev/null
+++ b/res/drawable/filtershow_border_grunge.9.png
Binary files differ
diff --git a/res/drawable/filtershow_border_sumi_e.9.png b/res/drawable/filtershow_border_sumi_e.9.png
new file mode 100644
index 0000000..45f1094
--- /dev/null
+++ b/res/drawable/filtershow_border_sumi_e.9.png
Binary files differ
diff --git a/res/drawable/filtershow_border_tape.9.png b/res/drawable/filtershow_border_tape.9.png
new file mode 100644
index 0000000..3837c5d
--- /dev/null
+++ b/res/drawable/filtershow_border_tape.9.png
Binary files differ
diff --git a/res/values/styles.xml b/res/values/styles.xml
index c534ad8..df150e1 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -28,6 +28,10 @@
         <item name="android:colorBackground">@null</item>
         <item name="android:colorBackgroundCacheHint">@null</item>
     </style>
+    <style name="Theme.FilterShow" parent="Theme.Gallery">
+        <item name="android:windowBackground">@null</item>
+        <item name="android:windowContentOverlay">@null</item>
+    </style>
     <style name="Holo.ActionBar" parent="android:Widget.Holo.ActionBar">
         <item name="android:displayOptions">useLogo|showHome</item>
         <item name="android:background">@drawable/actionbar_translucent</item>
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index e02a751..ad26bfe 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -465,6 +465,10 @@
         if (mainPanelWidth == 0) {
             mainPanelWidth = mainViewWidth;
         }
+        int filtersPanelWidth = findViewById(R.id.filtersPanel).getWidth();
+        if (mainPanelWidth < filtersPanelWidth) {
+            mainPanelWidth = filtersPanelWidth;
+        }
         int leftOver = mainViewWidth - mainPanelWidth - accessoryPanelWidth;
         if (leftOver < 0) {
             return -accessoryPanelWidth;
@@ -706,19 +710,29 @@
         // TODO: use listview
         // TODO: load the borders straight from the filesystem
         int p = 0;
-        ImageFilter[] borders = new ImageFilter[7];
+        ImageFilter[] borders = new ImageFilter[12];
         borders[p++] = new ImageFilterBorder(null);
 
         Drawable npd1 = getResources().getDrawable(R.drawable.filtershow_border_4x5);
         borders[p++] = new ImageFilterBorder(npd1);
         Drawable npd2 = getResources().getDrawable(R.drawable.filtershow_border_brush);
         borders[p++] = new ImageFilterBorder(npd2);
+        Drawable npd3 = getResources().getDrawable(R.drawable.filtershow_border_grunge);
+        borders[p++] = new ImageFilterBorder(npd3);
+        Drawable npd4 = getResources().getDrawable(R.drawable.filtershow_border_sumi_e);
+        borders[p++] = new ImageFilterBorder(npd4);
+        Drawable npd5 = getResources().getDrawable(R.drawable.filtershow_border_tape);
+        borders[p++] = new ImageFilterBorder(npd5);
         borders[p++] = new ImageFilterParametricBorder(Color.BLACK, mImageBorderSize, 0);
         borders[p++] = new ImageFilterParametricBorder(Color.BLACK, mImageBorderSize,
                 mImageBorderSize);
         borders[p++] = new ImageFilterParametricBorder(Color.WHITE, mImageBorderSize, 0);
         borders[p++] = new ImageFilterParametricBorder(Color.WHITE, mImageBorderSize,
                 mImageBorderSize);
+        int creamColor = Color.argb(255, 237, 237, 227);
+        borders[p++] = new ImageFilterParametricBorder(creamColor, mImageBorderSize, 0);
+        borders[p++] = new ImageFilterParametricBorder(creamColor, mImageBorderSize,
+                mImageBorderSize);
 
         ImageSmallFilter previousFilter = null;
         for (int i = 0; i < p; i++) {
