diff --git a/src/com/android/browser/ActiveTabsPage.java b/src/com/android/browser/ActiveTabsPage.java
index 23b313a..52d943f 100644
--- a/src/com/android/browser/ActiveTabsPage.java
+++ b/src/com/android/browser/ActiveTabsPage.java
@@ -75,7 +75,7 @@
         if (v == mNewTab) {
             mController.openTabToHomePage();
         } else if (v == mNewIncognitoTab) {
-            mController.openTab(null, true, true, false);
+            mController.openIncognitoTab();
         }
         mController.removeActiveTabsPage(false);
     }
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 0f967ce..4b72ce3 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -56,7 +56,6 @@
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Intents.Insert;
 import android.speech.RecognizerIntent;
-import android.speech.RecognizerResultsIntent;
 import android.text.TextUtils;
 import android.util.Log;
 import android.util.Patterns;
@@ -1546,7 +1545,7 @@
                 break;
 
             case R.id.incognito_menu_id:
-                openTab(null, true, true, false);
+                openIncognitoTab();
                 break;
 
             case R.id.goto_menu_id:
@@ -2214,12 +2213,19 @@
     }
 
     @Override
+    public Tab openIncognitoTab() {
+        return openTab(INCOGNITO_URI, true, true, false);
+    }
+
+    @Override
     public Tab openTab(String url, boolean incognito, boolean setActive,
             boolean useCurrent) {
         Tab tab = createNewTab(incognito, setActive, useCurrent);
         if (tab != null) {
             WebView w = tab.getWebView();
-            loadUrl(w, ((incognito && url == null) ? INCOGNITO_URI : url));
+            if (url != null) {
+                loadUrl(w, url);
+            }
         }
         return tab;
     }
@@ -2551,7 +2557,7 @@
                 // exclusive use of a modifier
                 if (event.isCtrlPressed()) {
                     if (event.isShiftPressed()) {
-                        openTab(null, true, true, false);
+                        openIncognitoTab();
                     } else {
                         openTabToHomePage();
                     }
diff --git a/src/com/android/browser/NavScreen.java b/src/com/android/browser/NavScreen.java
index 4095a96..9f2d4ae 100644
--- a/src/com/android/browser/NavScreen.java
+++ b/src/com/android/browser/NavScreen.java
@@ -239,7 +239,7 @@
             showMenu();
         } else if (mNewIncognito == v) {
             mUi.hideNavScreen(true);
-            mUiController.openTab(null, true, true, false);
+            mUiController.openIncognitoTab();
         }
     }
 
diff --git a/src/com/android/browser/UiController.java b/src/com/android/browser/UiController.java
index 9f85547..a2de1d7 100644
--- a/src/com/android/browser/UiController.java
+++ b/src/com/android/browser/UiController.java
@@ -42,6 +42,8 @@
 
     Tab openTabToHomePage();
 
+    Tab openIncognitoTab();
+
     Tab openTab(String url, boolean incognito, boolean setActive,
             boolean useCurrent);
 
