I've attached a patch which implements a `browse-url-with-function'. However I am not sure if we want to add more `browse-url-*' function variants, since this will make the `browse-url' API increasingly unclear. An alternative could be to add keyword arguments to `browse-url' for consolidation: For example: (browse-url url :kind 'external) ;; replaces `browse-url-with-browser-kind' (browse-url url :via some-function) ;; alternative to `browse-url-with-function' (browse-url url :via secondary) Daniel