diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 105dd0d..df926ad 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -268,22 +268,6 @@
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if (!mController.onOptionsItemSelected(item)) {
-            if (item.getItemId() == R.id.about_menu_id) {
-                final AlertDialog.Builder builder = new AlertDialog.Builder(this);
-                builder.setTitle(R.string.about);
-                builder.setCancelable(true);
-                String ua = "";
-                final WebView current = getController().getCurrentWebView();
-                if (current != null) {
-                    final WebSettings s = current.getSettings();
-                    if (s != null) {
-                        ua = s.getUserAgentString();
-                    }
-                }
-                builder.setMessage("Agent:" + ua);
-                builder.setPositiveButton(android.R.string.ok, null);
-                builder.create().show();
-            }
             return super.onOptionsItemSelected(item);
         }
         return true;
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 8bd85f6..27b8ce6 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -2049,6 +2049,23 @@
                 }
                 break;
 
+            case R.id.about_menu_id:
+                final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
+                builder.setTitle(R.string.about);
+                builder.setCancelable(true);
+                String ua = "";
+                final WebView currentWebView = getCurrentWebView();
+                if (currentWebView != null) {
+                    final WebSettings s = currentWebView.getSettings();
+                    if (s != null) {
+                        ua = s.getUserAgentString();
+                    }
+                }
+                builder.setMessage("Agent:" + ua);
+                builder.setPositiveButton(android.R.string.ok, null);
+                builder.create().show();
+                break;
+
             default:
                 return false;
         }
