diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 300b3b9..d76c9a8 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -1323,8 +1323,6 @@
     public boolean dispatchKeyEvent(KeyEvent event) {
         if (event.getAction() == KeyEvent.ACTION_DOWN) {
             switch (event.getKeyCode()) {
-                case KeyEvent.KEYCODE_BACK:
-                    return true;
                 case KeyEvent.KEYCODE_HOME:
                     return true;
                 case KeyEvent.KEYCODE_VOLUME_DOWN:
@@ -1336,18 +1334,6 @@
             }
         } else if (event.getAction() == KeyEvent.ACTION_UP) {
             switch (event.getKeyCode()) {
-                case KeyEvent.KEYCODE_BACK:
-                    if (event.isTracking() && !event.isCanceled()) {
-                        mWorkspace.dispatchKeyEvent(event);
-                        if (isAllAppsVisible()) {
-                            closeAllApps(true);
-                        } else {
-                            closeFolder();
-                        }
-                        dismissPreview(mPreviousView);
-                        dismissPreview(mNextView);
-                    }
-                    return true;
                 case KeyEvent.KEYCODE_HOME:
                     return true;
             }
@@ -1356,6 +1342,17 @@
         return super.dispatchKeyEvent(event);
     }
 
+    @Override
+    public void onBackPressed() {
+        if (isAllAppsVisible()) {
+            closeAllApps(true);
+        } else {
+            closeFolder();
+        }
+        dismissPreview(mPreviousView);
+        dismissPreview(mNextView);
+    }
+
     private void closeFolder() {
         Folder folder = mWorkspace.getOpenFolder();
         if (folder != null) {
