diff --git a/fill_screens.py b/fill_screens.py
index 9607c80..5841b8e 100755
--- a/fill_screens.py
+++ b/fill_screens.py
@@ -15,13 +15,12 @@
 AUTO_FILE = "launcher.db"
 
 APPLICATION_COMPONENTS = [
-  "com.google.android.apps.books/com.google.android.apps.books.app.BooksActivity",
   "com.android.calculator2/com.android.calculator2.Calculator",
-  "com.google.android.camera/com.android.camera.Camera",
-  "com.google.android.carhome/com.google.android.carhome.CarHome",
   "com.android.providers.downloads.ui/com.android.providers.downloads.ui.DownloadList",
-  "com.google.android.gallery3d/com.android.gallery3d.app.Gallery",
-  "com.google.android.apps.maps/com.google.android.maps.MapsActivity"
+  "com.android.settings/com.android.settings.Settings",
+  "com.android.mms/com.android.mms.ui.ConversationList",
+  "com.android.contacts/com.android.contacts.activities.PeopleActivity",
+  "com.android.contacts/com.android.contacts.activities.DialtactsActivity"
 ]
 
 def usage():
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5c806e2..63d7b3b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -153,8 +153,8 @@
     <!-- Noun, menu item used to show help. [CHAR_LIMIT=none] -->
     <string name="menu_help">Help</string>
 
-    <!-- URL pointing to help text. [DO NOT TRANSLATE] -->
-    <string name="help_url" translatable="false">http://www.google.com/support/mobile/?p=help_home</string>
+    <!-- URL pointing to help text. If empty, no link to help will be created [DO NOT TRANSLATE] -->
+    <string name="help_url" translatable="false"></string>
 
     <!--  Strings for the contextual action bar (CAB) in All Apps -->
     <skip />
@@ -199,18 +199,9 @@
     <!-- Widgets: -->
     <skip />    
 
-    <!-- The Google Apps folder name -->
-    <string name="google_apps_folder_name">Google</string>
-
     <!-- Text to show user in place of a gadget when we can't display it properly -->
     <string name="gadget_error_text">Problem loading widget</string>
 
-    <!-- URL to use when detecting the current default browser. 
-         Attempts to mimic homepage_base in Browser; {CID} should be replaced
-         by the client-id, e.g. "android-google". -->
-    <string name="default_browser_url" translatable="false">
-        http://www.google.com/m?client=ms-{CID}&amp;source=android-home-hotseat</string>
-
     <!-- Text to inform the user that they can't uninstall a system application -->
     <string name="uninstall_system_app_text">This is a system application and cannot be uninstalled.</string>
 
diff --git a/res/xml/default_workspace.xml b/res/xml/default_workspace.xml
index ccc8022..f2f4240 100644
--- a/res/xml/default_workspace.xml
+++ b/res/xml/default_workspace.xml
@@ -29,7 +29,7 @@
 
     <!-- Middle screen [2] -->
     <appwidget
-        launcher:packageName="com.google.android.deskclock"
+        launcher:packageName="com.android.deskclock"
         launcher:className="com.android.alarmclock.AnalogAppWidgetProvider"
         launcher:screen="2"
         launcher:x="1"
@@ -37,59 +37,15 @@
         launcher:spanX="2"
         launcher:spanY="2" />
     <favorite
-        launcher:packageName="com.google.android.camera"
+        launcher:packageName="com.android.camera"
         launcher:className="com.android.camera.Camera"
         launcher:screen="2"
         launcher:x="0"
         launcher:y="3" />
-    <folder
-        launcher:screen="2"
-        launcher:x="3"
-        launcher:y="3"
-        launcher:title="@string/google_apps_folder_name">
-        <favorite
-            launcher:packageName="com.google.android.apps.maps"
-            launcher:className="com.google.android.maps.MapsActivity" />
-        <favorite
-            launcher:packageName="com.google.android.gm"
-            launcher:className="com.google.android.gm.ConversationListActivityGmail" />
-        <favorite
-            launcher:packageName="com.google.android.calendar"
-            launcher:className="com.android.calendar.AllInOneActivity" />
-        <favorite
-            launcher:packageName="com.google.android.apps.plus"
-            launcher:className="com.google.android.apps.plus.phone.HomeActivity" />
-        <favorite
-            launcher:packageName="com.google.android.music"
-            launcher:className="com.android.music.activitymanagement.TopLevelActivity" />
-        <favorite
-            launcher:packageName="com.google.android.apps.books"
-            launcher:className="com.google.android.apps.books.app.BooksActivity" />
-        <favorite
-            launcher:packageName="com.google.android.videos"
-            launcher:className="com.google.android.youtube.videos.honeycomb.VideosActivity" />
-        <favorite
-            launcher:packageName="com.android.vending"
-            launcher:className="com.android.vending.AssetBrowserActivity" />
-        <favorite
-            launcher:packageName="com.google.android.talk"
-            launcher:className="com.google.android.talk.SigningInActivity" />
-        <favorite
-            launcher:packageName="com.google.android.youtube"
-            launcher:className="com.google.android.youtube.app.honeycomb.Shell$HomeActivity" />
-    </folder>
 
     <!-- Right screen [3] -->
-    <appwidget
-        launcher:packageName="com.android.vending"
-        launcher:className="com.android.vending.MarketWidgetProvider"
-        launcher:screen="3"
-        launcher:x="1"
-        launcher:y="1"
-        launcher:spanX="2"
-        launcher:spanY="2" />
     <favorite
-        launcher:packageName="com.google.android.gallery3d"
+        launcher:packageName="com.android.gallery3d"
         launcher:className="com.android.gallery3d.app.Gallery"
         launcher:screen="3"
         launcher:x="1"
@@ -126,7 +82,7 @@
         launcher:x="3"
         launcher:y="0" />
     <favorite
-        launcher:packageName="com.google.android.browser"
+        launcher:packageName="com.android.browser"
         launcher:className="com.android.browser.BrowserActivity"
         launcher:container="-101"
         launcher:screen="4"
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 59386ad..2997d68 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -1302,7 +1302,8 @@
         Intent settings = new Intent(android.provider.Settings.ACTION_SETTINGS);
         settings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                 | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
-        Intent help = new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.help_url)));
+        String helpUrl = getString(R.string.help_url);
+        Intent help = new Intent(Intent.ACTION_VIEW, Uri.parse(helpUrl));
         help.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                 | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
 
@@ -1317,10 +1318,12 @@
             .setIcon(android.R.drawable.ic_menu_preferences)
             .setIntent(settings)
             .setAlphabeticShortcut('P');
-        menu.add(0, MENU_HELP, 0, R.string.menu_help)
-            .setIcon(android.R.drawable.ic_menu_help)
-            .setIntent(help)
-            .setAlphabeticShortcut('H');
+        if (!helpUrl.isEmpty()) {
+            menu.add(0, MENU_HELP, 0, R.string.menu_help)
+                .setIcon(android.R.drawable.ic_menu_help)
+                .setIntent(help)
+                .setAlphabeticShortcut('H');
+        }
         return true;
     }
 
