diff --git a/src/com/android/browser/IntentHandler.java b/src/com/android/browser/IntentHandler.java
index 040af81..0b47668 100644
--- a/src/com/android/browser/IntentHandler.java
+++ b/src/com/android/browser/IntentHandler.java
@@ -222,19 +222,6 @@
                     // But currently, we get the user-typed URL from search box as well.
                     url = UrlUtils.fixUrl(url);
                     url = UrlUtils.smartUrlFilter(url);
-                    final ContentResolver cr = mActivity.getContentResolver();
-                    final String newUrl = url;
-                    if (mTabControl == null
-                            || mTabControl.getCurrentWebView() == null
-                            || !mTabControl.getCurrentWebView().isPrivateBrowsingEnabled()) {
-                        new AsyncTask<Void, Void, Void>() {
-                            @Override
-                            protected Void doInBackground(Void... unused) {
-                                Browser.updateVisitedHistory(cr, newUrl, false);
-                                return null;
-                            }
-                        }.execute();
-                    }
                     String searchSource = "&source=android-" + GOOGLE_SEARCH_SOURCE_SUGGEST + "&";
                     if (url.contains(searchSource)) {
                         String source = null;
@@ -311,7 +298,6 @@
             new AsyncTask<Void, Void, Void>() {
                 @Override
                 protected Void doInBackground(Void... unused) {
-                        Browser.updateVisitedHistory(cr, newUrl, false);
                         Browser.addSearchUrl(cr, newUrl);
                     return null;
                 }
