diff --git a/src/com/android/browser/DownloadHandler.java b/src/com/android/browser/DownloadHandler.java
index 6e2c786..219114e 100644
--- a/src/com/android/browser/DownloadHandler.java
+++ b/src/com/android/browser/DownloadHandler.java
@@ -107,7 +107,7 @@
 
         boolean needed = false;
         for (char c : chars) {
-            if (c == '[' || c == ']') {
+            if (c == '[' || c == ']' || c == '|') {
                 needed = true;
                 break;
             }
@@ -118,7 +118,7 @@
 
         StringBuilder sb = new StringBuilder("");
         for (char c : chars) {
-            if (c == '[' || c == ']') {
+            if (c == '[' || c == ']' || c == '|') {
                 sb.append('%');
                 sb.append(Integer.toHexString(c));
             } else {
diff --git a/src/com/android/browser/FetchUrlMimeType.java b/src/com/android/browser/FetchUrlMimeType.java
index 845bcc7..07c9b93 100644
--- a/src/com/android/browser/FetchUrlMimeType.java
+++ b/src/com/android/browser/FetchUrlMimeType.java
@@ -27,6 +27,7 @@
 import android.net.Proxy;
 import android.net.http.AndroidHttpClient;
 import android.os.Environment;
+import android.util.Log;
 import android.webkit.MimeTypeMap;
 import android.webkit.URLUtil;
 
@@ -44,6 +45,8 @@
  */
 class FetchUrlMimeType extends Thread {
 
+    private final static String LOGTAG = "FetchUrlMimeType";
+
     private Context mContext;
     private DownloadManager.Request mRequest;
     private String mUri;
@@ -64,9 +67,16 @@
         // User agent is likely to be null, though the AndroidHttpClient
         // seems ok with that.
         AndroidHttpClient client = AndroidHttpClient.newInstance(mUserAgent);
-        HttpHost httpHost = Proxy.getPreferredHttpHost(mContext, mUri);
-        if (httpHost != null) {
-            ConnRouteParams.setDefaultProxy(client.getParams(), httpHost);
+        HttpHost httpHost;
+        try {
+            httpHost = Proxy.getPreferredHttpHost(mContext, mUri);
+            if (httpHost != null) {
+                ConnRouteParams.setDefaultProxy(client.getParams(), httpHost);
+            }
+        } catch (IllegalArgumentException ex) {
+            Log.e(LOGTAG,"Download failed: " + ex);
+            client.close();
+            return;
         }
         HttpHead request = new HttpHead(mUri);
 
