--- a/lisp/net/eww.el	2014-12-09 03:21:57 +0000
+++ b/lisp/net/eww.el	2014-12-16 19:59:32 +0000
@@ -252,8 +238,15 @@
   (setq url (string-trim url))
   (cond ((string-match-p "\\`file:/" url))
 	;; Don't mangle file: URLs at all.
-        ((string-match-p "\\`ftp://" url)
-         (user-error "FTP is not supported."))
+	((let* ((parsed (url-generic-parse-url url))
+		(loader (url-scheme-get-property (url-type parsed) 'loader))
+		(proxy  (and (url-host parsed)
+			     (url-find-proxy-for-url
+			      parsed (url-host parsed)))))
+	   (and (eq 'url-ftp loader)
+		(or (not proxy)
+		    (not (string-match-p "^https?://" proxy)))))
+	 (user-error "Direct FTP is not supported."))
         (t
          (if (and (= (length (split-string url)) 1)
 		  (or (and (not (string-match-p "\\`[\"\'].*[\"\']\\'" url))
