If browse-url-browser-function is an unknown symbol the error from browse-url isn't very helpful. Eg. M-: (setq browse-url-browser-function 'FOOBAR-browse-url) M-x browse-url http://www.gnu.org => Wrong type argument: listp, FOOBAR-browse-url I hoped it would say the problem is the symbol is unbound, not that it's supposed to be a list. (The value can be a list of course, but if the value is a symbol then it's surely meant to be the name of a function.) Sending symbols down the `apply' leg of `browse-url' would give => Symbol's function definition is void: FOOBAR-browse-url which I think is a much better. 2009-09-23 Kevin Ryde * net/browse-url.el (browse-url): Pass any symbol in browse-url-browser-function to `apply', since if you've mistakenly put an unbound symbol then the error from apply is much clearer that the function you wanted is not available.