diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 82f8a3d..6622929 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -210,7 +210,7 @@
     static final boolean DEBUG = false;
     static final boolean LOGV_ENABLED = DEBUG;
 
-    private class ExtendedZoomControls extends FrameLayout {
+    private static class ExtendedZoomControls extends FrameLayout {
         public ExtendedZoomControls(Context context, AttributeSet attrs) {
             super(context, attrs);
             LayoutInflater inflater = (LayoutInflater)
@@ -564,7 +564,7 @@
         public void onNewPicture(WebView view, Picture picture);
     }
 
-    public class HitTestResult {
+    public static class HitTestResult {
         /**
          * Default HitTestResult, where the target is unknown
          */
@@ -2859,7 +2859,7 @@
     /**
      *  Class representing the node which is focused.
      */
-    private class FocusNode {
+    private static class FocusNode {
         public FocusNode() {
             mBounds = new Rect();
         }
@@ -4568,8 +4568,8 @@
         HashMap arg = new HashMap();
         arg.put("focusData", new WebViewCore.FocusData(mFocusData));
         arg.put("replace", replace);
-        arg.put("start", new Integer(newStart));
-        arg.put("end", new Integer(newEnd));
+        arg.put("start", Integer.valueOf(newStart));
+        arg.put("end", Integer.valueOf(newEnd));
         mTextGeneration++;
         mWebViewCore.sendMessage(EventHub.REPLACE_TEXT, oldStart, oldEnd, arg);
     }
@@ -4888,10 +4888,6 @@
 
     // Class used to use a dropdown for a <select> element
     private class InvokeListBox implements Runnable {
-        // Strings for the labels in the listbox.
-        private String[]    mArray;
-        // Array representing whether each item is enabled.
-        private boolean[]   mEnableArray;
         // Whether the listbox allows multiple selection.
         private boolean     mMultiple;
         // Passed in to a list with multiple selection to tell
