diff --git a/src/com/android/launcher2/AllAppsPagedView.java b/src/com/android/launcher2/AllAppsPagedView.java
index 5de53d8..54b2d27 100644
--- a/src/com/android/launcher2/AllAppsPagedView.java
+++ b/src/com/android/launcher2/AllAppsPagedView.java
@@ -430,9 +430,6 @@
             TextView icon = (TextView) mInflater.inflate(
                     R.layout.all_apps_no_items_placeholder, layout, false);
             switch (mAppFilter) {
-            case ApplicationInfo.GAME_FLAG:
-                icon.setText(mContext.getString(R.string.all_apps_no_games));
-                break;
             case ApplicationInfo.DOWNLOADED_FLAG:
                 icon.setText(mContext.getString(R.string.all_apps_no_downloads));
                 break;
diff --git a/src/com/android/launcher2/AllAppsTabbed.java b/src/com/android/launcher2/AllAppsTabbed.java
index ac6484d..eaeb80f 100644
--- a/src/com/android/launcher2/AllAppsTabbed.java
+++ b/src/com/android/launcher2/AllAppsTabbed.java
@@ -39,8 +39,6 @@
     private static final String TAG = "Launcher.AllAppsTabbed";
 
     private static final String TAG_ALL = "ALL";
-    private static final String TAG_APPS = "APPS";
-    private static final String TAG_GAMES = "GAMES";
     private static final String TAG_DOWNLOADED = "DOWNLOADED";
 
     private AllAppsPagedView mAllApps;
@@ -73,12 +71,6 @@
         String label = mContext.getString(R.string.all_apps_tab_all);
         addTab(newTabSpec(TAG_ALL).setIndicator(label).setContent(contentFactory));
 
-        label = mContext.getString(R.string.all_apps_tab_apps);
-        addTab(newTabSpec(TAG_APPS).setIndicator(label).setContent(contentFactory));
-
-        label = mContext.getString(R.string.all_apps_tab_games);
-        addTab(newTabSpec(TAG_GAMES).setIndicator(label).setContent(contentFactory));
-
         label = mContext.getString(R.string.all_apps_tab_downloaded);
         addTab(newTabSpec(TAG_DOWNLOADED).setIndicator(label).setContent(contentFactory));
 
@@ -95,10 +87,6 @@
                         String tag = getCurrentTabTag();
                         if (tag == TAG_ALL) {
                             mAllApps.setAppFilter(AllAppsPagedView.ALL_APPS_FLAG);
-                        } else if (tag == TAG_APPS) {
-                            mAllApps.setAppFilter(ApplicationInfo.APP_FLAG);
-                        } else if (tag == TAG_GAMES) {
-                            mAllApps.setAppFilter(ApplicationInfo.GAME_FLAG);
                         } else if (tag == TAG_DOWNLOADED) {
                             mAllApps.setAppFilter(ApplicationInfo.DOWNLOADED_FLAG);
                         }
