diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 1e1698b..b6d269d 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -79,8 +79,9 @@
             return;
         }
 
-        if (((AccessibilityManager) getSystemService(ACCESSIBILITY_SERVICE))
-                .isEnabled()) {
+        AccessibilityManager accessibilityManager = (AccessibilityManager)
+                getSystemService(ACCESSIBILITY_SERVICE);
+        if (accessibilityManager != null && accessibilityManager.isEnabled()) {
             setDefaultKeyMode(DEFAULT_KEYS_DISABLE);
         }
 
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 7512949..9659063 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -2293,6 +2293,7 @@
         // hide combo view if open
         removeComboView();
         if (mTabControl.getTabCount() == 1) {
+            CrashRecoveryHandler.clearState(mActivity);
             mActivity.finish();
             return;
         }
diff --git a/src/com/android/browser/CrashRecoveryHandler.java b/src/com/android/browser/CrashRecoveryHandler.java
index ca538bd..55fa6f8 100644
--- a/src/com/android/browser/CrashRecoveryHandler.java
+++ b/src/com/android/browser/CrashRecoveryHandler.java
@@ -134,7 +134,7 @@
 
     }
 
-    private static void clearState(Context context) {
+    public static void clearState(Context context) {
         File state = new File(context.getCacheDir(), STATE_FILE);
         if (state.exists()) {
             state.delete();
diff --git a/src/com/android/browser/view/Gallery.java b/src/com/android/browser/view/Gallery.java
index aa6ed65..0c73537 100644
--- a/src/com/android/browser/view/Gallery.java
+++ b/src/com/android/browser/view/Gallery.java
@@ -1196,24 +1196,6 @@
     }
 
     @Override
-    protected int getChildDrawingOrder(int childCount, int i) {
-        int selectedIndex = mSelectedPosition - mFirstPosition;
-        // Just to be safe
-        if (selectedIndex < 0)
-            return i;
-        if (i == childCount - 1) {
-            // Draw the selected child last
-            return selectedIndex;
-        } else if (i >= selectedIndex) {
-            // Move the children to the right of the selected child earlier one
-            return i + 1;
-        } else {
-            // Keep the children to the left of the selected child the same
-            return i;
-        }
-    }
-
-    @Override
     protected void onFocusChanged(boolean gainFocus, int direction,
             Rect previouslyFocusedRect) {
         super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
