diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 1d535a4..406c73c 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -1462,6 +1462,8 @@
             menu.setGroupVisible(R.id.ANCHOR_MENU,
                     type == WebView.HitTestResult.SRC_ANCHOR_TYPE
                             || type == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE);
+            menu.findItem(R.id.save_link_context_menu_id).setEnabled(
+                UrlUtils.isDownloadableScheme(extra));
         }
         // Setup custom handling depending on the type
         switch (type) {
diff --git a/src/com/android/browser/FetchUrlMimeType.java b/src/com/android/browser/FetchUrlMimeType.java
index fbd8be7..0e8398a 100644
--- a/src/com/android/browser/FetchUrlMimeType.java
+++ b/src/com/android/browser/FetchUrlMimeType.java
@@ -124,9 +124,11 @@
                 }
             }
         } catch (IllegalArgumentException ex) {
-            request.abort();
+            if (request != null)
+                request.abort();
         } catch (IOException ex) {
-            request.abort();
+            if (request != null)
+                request.abort();
         } finally {
             client.close();
         }
diff --git a/src/com/android/browser/UrlUtils.java b/src/com/android/browser/UrlUtils.java
index ff78647..d00e8c3 100755
--- a/src/com/android/browser/UrlUtils.java
+++ b/src/com/android/browser/UrlUtils.java
@@ -22,11 +22,18 @@
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import java.util.HashSet;
+import java.util.Arrays;
 
 /**
  * Utility methods for Url manipulation
  */
 public class UrlUtils {
+    public static final String[] DOWNLOADABLE_SCHEMES_VALUES = new String[]
+        { "data", "filesystem", "http", "https" };
+
+    private static final HashSet<String> DOWNLOADABLE_SCHEMES =
+        new HashSet<String>(Arrays.asList(DOWNLOADABLE_SCHEMES_VALUES));
 
     static final Pattern ACCEPTED_URI_SCHEMA = Pattern.compile(
             "(?i)" + // switch on case insensitive matching
@@ -89,6 +96,18 @@
         return smartUrlFilter(url, true);
     }
 
+    public static boolean isDownloadableScheme(Uri uri) {
+        return DOWNLOADABLE_SCHEMES.contains(uri.getScheme());
+    }
+
+    public static boolean isDownloadableScheme(String uri) {
+        try {
+            return isDownloadableScheme(Uri.parse(uri));
+        } catch (Exception e) {
+            return false;
+        }
+    }
+
     /**
      * Attempts to determine whether user input is a URL or search
      * terms.  Anything with a space is passed to search if canBeSearch is true.
