--- 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))