diff --git a/res/menu/title_context.xml b/res/menu/title_context.xml
deleted file mode 100644
index a60f102..0000000
--- a/res/menu/title_context.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <!-- These are for the context menu for the title bar.  Note that we need a
-            different item from share_page_menu_id, which looks at the top
-            window (possibly a subwindow), because this should be the main
-            window.-->
-    <item android:id="@+id/title_bar_share_page_url"
-        android:title="@string/share_page"/>
-    <item android:id="@+id/title_bar_copy_page_url"
-        android:title="@string/copy_page_url"/>
-</menu>
diff --git a/src/com/android/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java
index a059352..724dcc8 100644
--- a/src/com/android/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -74,7 +74,6 @@
         mFavicon = (ImageView) findViewById(R.id.favicon);
         mUrlInput = (UrlInputView) findViewById(R.id.url);
         mUrlInput.setUrlInputListener(this);
-        mUrlInput.setController(mUiController);
         mUrlInput.setOnFocusChangeListener(this);
         mUrlInput.setSelectAllOnFocus(true);
         mUrlInput.addQueryTextWatcher(this);
@@ -84,6 +83,7 @@
         mTitleBar = titleBar;
         mBaseUi = mTitleBar.getUi();
         mUiController = mTitleBar.getUiController();
+        mUrlInput.setController(mUiController);
     }
 
     public void setLock(Drawable d) {
diff --git a/src/com/android/browser/NavigationBarPhone.java b/src/com/android/browser/NavigationBarPhone.java
index 400b695..388c262 100644
--- a/src/com/android/browser/NavigationBarPhone.java
+++ b/src/com/android/browser/NavigationBarPhone.java
@@ -86,14 +86,6 @@
     }
 
     @Override
-    public void createContextMenu(ContextMenu menu) {
-        Activity activity = mBaseUi.getActivity();
-        MenuInflater inflater = activity.getMenuInflater();
-        inflater.inflate(R.menu.title_context, menu);
-        activity.onCreateContextMenu(menu, this, null);
-    }
-
-    @Override
     protected void setSearchMode(boolean voiceSearchEnabled) {
         boolean showvoicebutton = voiceSearchEnabled &&
                 mUiController.supportsVoiceSearch();
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
index aeba7cf..301e09f 100644
--- a/src/com/android/browser/XLargeUi.java
+++ b/src/com/android/browser/XLargeUi.java
@@ -253,7 +253,7 @@
     @Override
     public void onActionModeStarted(ActionMode mode) {
         if (!mTitleBar.isEditingUrl()) {
-            // hide the fake title bar when CAB is shown
+            // hide the title bar when CAB is shown
             hideTitleBar();
         }
     }
