diff --git a/res/drawable/wallpaper_dale_chihuly.jpg b/res/drawable/wallpaper_dale_chihuly.jpg
index 25c7940..e69de29 100644
--- a/res/drawable/wallpaper_dale_chihuly.jpg
+++ b/res/drawable/wallpaper_dale_chihuly.jpg
Binary files differ
diff --git a/res/drawable/wallpaper_dale_chihuly_small.jpg b/res/drawable/wallpaper_dale_chihuly_small.jpg
index d11827b..e69de29 100644
--- a/res/drawable/wallpaper_dale_chihuly_small.jpg
+++ b/res/drawable/wallpaper_dale_chihuly_small.jpg
Binary files differ
diff --git a/res/drawable/wallpaper_john_maeda.jpg b/res/drawable/wallpaper_john_maeda.jpg
index 2118382..e69de29 100644
--- a/res/drawable/wallpaper_john_maeda.jpg
+++ b/res/drawable/wallpaper_john_maeda.jpg
Binary files differ
diff --git a/res/drawable/wallpaper_john_maeda_small.jpg b/res/drawable/wallpaper_john_maeda_small.jpg
index 08d0827..e69de29 100644
--- a/res/drawable/wallpaper_john_maeda_small.jpg
+++ b/res/drawable/wallpaper_john_maeda_small.jpg
Binary files differ
diff --git a/res/drawable/wallpaper_marc_ecko.jpg b/res/drawable/wallpaper_marc_ecko.jpg
index fd24072..e69de29 100644
--- a/res/drawable/wallpaper_marc_ecko.jpg
+++ b/res/drawable/wallpaper_marc_ecko.jpg
Binary files differ
diff --git a/res/drawable/wallpaper_marc_ecko_small.jpg b/res/drawable/wallpaper_marc_ecko_small.jpg
index 3236cd5..e69de29 100644
--- a/res/drawable/wallpaper_marc_ecko_small.jpg
+++ b/res/drawable/wallpaper_marc_ecko_small.jpg
Binary files differ
diff --git a/res/layout/widget_search.xml b/res/layout/widget_search.xml
index 95e8052..27e591d 100644
--- a/res/layout/widget_search.xml
+++ b/res/layout/widget_search.xml
@@ -43,7 +43,7 @@
          android:layout_marginLeft="1dip"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
-         android:src="@android:drawable/ic_btn_search"
+         android:src="@*android:drawable/ic_btn_search"
          />
     
 </com.android.launcher.Search>
diff --git a/res/values-cs/extra_wallpapers.xml b/res/values-cs/extra_wallpapers.xml
new file mode 100644
index 0000000..f2e61cd
--- /dev/null
+++ b/res/values-cs/extra_wallpapers.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="extra_wallpapers">
+  </string-array>
+</resources>
diff --git a/res/values-de/extra_wallpapers.xml b/res/values-de/extra_wallpapers.xml
new file mode 100644
index 0000000..f2e61cd
--- /dev/null
+++ b/res/values-de/extra_wallpapers.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="extra_wallpapers">
+  </string-array>
+</resources>
diff --git a/res/values-es/extra_wallpapers.xml b/res/values-es/extra_wallpapers.xml
new file mode 100644
index 0000000..f2e61cd
--- /dev/null
+++ b/res/values-es/extra_wallpapers.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="extra_wallpapers">
+  </string-array>
+</resources>
diff --git a/res/values-fr/extra_wallpapers.xml b/res/values-fr/extra_wallpapers.xml
new file mode 100644
index 0000000..f2e61cd
--- /dev/null
+++ b/res/values-fr/extra_wallpapers.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="extra_wallpapers">
+  </string-array>
+</resources>
diff --git a/res/values-it/extra_wallpapers.xml b/res/values-it/extra_wallpapers.xml
new file mode 100644
index 0000000..f2e61cd
--- /dev/null
+++ b/res/values-it/extra_wallpapers.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="extra_wallpapers">
+  </string-array>
+</resources>
diff --git a/res/values-ja/extra_wallpapers.xml b/res/values-ja/extra_wallpapers.xml
new file mode 100644
index 0000000..f2e61cd
--- /dev/null
+++ b/res/values-ja/extra_wallpapers.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="extra_wallpapers">
+  </string-array>
+</resources>
diff --git a/res/values-nl/extra_wallpapers.xml b/res/values-nl/extra_wallpapers.xml
new file mode 100644
index 0000000..f2e61cd
--- /dev/null
+++ b/res/values-nl/extra_wallpapers.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="extra_wallpapers">
+  </string-array>
+</resources>
diff --git a/res/values-pl/extra_wallpapers.xml b/res/values-pl/extra_wallpapers.xml
new file mode 100644
index 0000000..f2e61cd
--- /dev/null
+++ b/res/values-pl/extra_wallpapers.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="extra_wallpapers">
+  </string-array>
+</resources>
diff --git a/res/values-ru/extra_wallpapers.xml b/res/values-ru/extra_wallpapers.xml
new file mode 100644
index 0000000..f2e61cd
--- /dev/null
+++ b/res/values-ru/extra_wallpapers.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="extra_wallpapers">
+  </string-array>
+</resources>
diff --git a/res/values-zh-rCN/extra_wallpapers.xml b/res/values-zh-rCN/extra_wallpapers.xml
new file mode 100644
index 0000000..f2e61cd
--- /dev/null
+++ b/res/values-zh-rCN/extra_wallpapers.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="extra_wallpapers">
+  </string-array>
+</resources>
diff --git a/res/values-zh-rTW/extra_wallpapers.xml b/res/values-zh-rTW/extra_wallpapers.xml
new file mode 100644
index 0000000..f2e61cd
--- /dev/null
+++ b/res/values-zh-rTW/extra_wallpapers.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="extra_wallpapers">
+  </string-array>
+</resources>
diff --git a/res/values/extra_wallpapers.xml b/res/values/extra_wallpapers.xml
new file mode 100644
index 0000000..9e0951c
--- /dev/null
+++ b/res/values/extra_wallpapers.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (C) 2009 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+
+<resources>
+    <string-array name="extra_wallpapers">
+    </string-array>
+</resources>
diff --git a/src/com/android/launcher/Launcher.java b/src/com/android/launcher/Launcher.java
index af1b0f3..465400b 100644
--- a/src/com/android/launcher/Launcher.java
+++ b/src/com/android/launcher/Launcher.java
@@ -819,7 +819,7 @@
                 .setIcon(android.R.drawable.ic_search_category_default)
                 .setAlphabeticShortcut(SearchManager.MENU_KEY);
         menu.add(0, MENU_NOTIFICATIONS, 0, R.string.menu_notifications)
-                .setIcon(android.R.drawable.ic_menu_notifications)
+                .setIcon(com.android.internal.R.drawable.ic_menu_notifications)
                 .setAlphabeticShortcut('N');
 
         final Intent settings = new Intent(android.provider.Settings.ACTION_SETTINGS);
diff --git a/src/com/android/launcher/WallpaperChooser.java b/src/com/android/launcher/WallpaperChooser.java
index a4e583e..afbe6f3 100644
--- a/src/com/android/launcher/WallpaperChooser.java
+++ b/src/com/android/launcher/WallpaperChooser.java
@@ -32,9 +32,12 @@
 import android.graphics.BitmapFactory;
 import android.graphics.Bitmap;
 import android.graphics.drawable.Drawable;
+import android.content.res.Resources;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collections;
 
 public class WallpaperChooser extends Activity implements AdapterView.OnItemSelectedListener,
         OnClickListener {
@@ -55,9 +58,6 @@
             R.drawable.wallpaper_grey_small,
             R.drawable.wallpaper_green_small,
             R.drawable.wallpaper_pink_small,
-            R.drawable.wallpaper_dale_chihuly_small,
-            R.drawable.wallpaper_john_maeda_small,
-            R.drawable.wallpaper_marc_ecko_small,
     };
 
     private static final Integer[] IMAGE_IDS = {
@@ -76,9 +76,6 @@
             R.drawable.wallpaper_grey,
             R.drawable.wallpaper_green,
             R.drawable.wallpaper_pink,
-            R.drawable.wallpaper_dale_chihuly,
-            R.drawable.wallpaper_john_maeda,
-            R.drawable.wallpaper_marc_ecko,
     };
 
     private Gallery mGallery;
@@ -88,11 +85,16 @@
     private BitmapFactory.Options mOptions;
     private Bitmap mBitmap;
 
+    private ArrayList<Integer> mThumbs;
+    private ArrayList<Integer> mImages;
+
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         requestWindowFeature(Window.FEATURE_NO_TITLE);
 
+        findWallpapers();
+
         setContentView(R.layout.wallpaper_chooser);
 
         mOptions = new BitmapFactory.Options();
@@ -103,13 +105,41 @@
         mGallery.setAdapter(new ImageAdapter(this));
         mGallery.setOnItemSelectedListener(this);
         mGallery.setCallbackDuringFling(false);
-        
+
         Button b = (Button) findViewById(R.id.set);
         b.setOnClickListener(this);
 
         mImageView = (ImageView) findViewById(R.id.wallpaper);
     }
 
+    private void findWallpapers() {
+        mThumbs = new ArrayList<Integer>(THUMB_IDS.length + 4);
+        Collections.addAll(mThumbs, THUMB_IDS);
+
+        mImages = new ArrayList<Integer>(IMAGE_IDS.length + 4);
+        Collections.addAll(mImages, IMAGE_IDS);
+
+        final Resources resources = getResources();
+        final String[] extras = resources.getStringArray(R.array.extra_wallpapers);
+        final String packageName = getApplication().getPackageName();
+
+        final ArrayList<Integer> images = mImages;
+        final ArrayList<Integer> thumbs = mThumbs;
+
+        for (String extra : extras) {
+            int res = resources.getIdentifier(extra, "drawable", packageName);
+            if (res != 0) {
+                final int thumbRes = resources.getIdentifier(extra + "_small",
+                        "drawable", packageName);
+
+                if (thumbRes != 0) {
+                    images.add(res);
+                    thumbs.add(res);
+                }
+            }
+        }
+    }
+
     @Override
     protected void onResume() {
         super.onResume();
@@ -144,7 +174,7 @@
 
         mIsWallpaperSet = true;
         try {
-            InputStream stream = getResources().openRawResource(IMAGE_IDS[position]);
+            InputStream stream = getResources().openRawResource(mImages.get(position));
             setWallpaper(stream);
             setResult(RESULT_OK);
             finish();
@@ -164,7 +194,7 @@
         }
 
         public int getCount() {
-            return THUMB_IDS.length;
+            return mThumbs.size();
         }
 
         public Object getItem(int position) {
@@ -184,7 +214,7 @@
                 image = (ImageView) convertView;
             }
 
-            image.setImageResource(THUMB_IDS[position]);
+            image.setImageResource(mThumbs.get(position));
             image.getDrawable().setDither(true);
             return image;
         }
