diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index c4260da..a1a3aba 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -719,24 +719,6 @@
                 super.onUnhandledKeyEvent(view, event);
             }
         }
-        //SWE-download-file
-        @Override
-        public void onDownloadStart(String url,
-                                 String userAgent,
-                                 String contentDisposition,
-                                 String mimeType,
-                                 long contentLength) {
-          if (mDownloadListener != null) {
-             if (mDownloadListener instanceof BrowserDownloadListener) {
-                 ((BrowserDownloadListener) mDownloadListener).onDownloadStart(url,
-                     userAgent, contentDisposition, mimeType, contentLength);
-             } else {
-                 mDownloadListener.onDownloadStart(url, userAgent,
-                     contentDisposition, mimeType, contentLength);
-             }
-          }
-        }
-        //SWE-download-file
     };
 
     private void syncCurrentState(WebView view, String url) {
