anchor.diff:  	ListenOpts0 = [binary, {active, false},
   		{backlog, Backlog}, {packet, raw}, {reuseaddr, true},
   		{certfile, CertFile}, {keyfile, KeyFile}, {password, Password}],
  -	ListenOpts =
  +	ListenOpts1 =
   		case lists:keyfind(ip, 1, Opts) of
   			false -> ListenOpts0;
   			Ip -> [Ip|ListenOpts0]
   		end,
  +	ListenOpts =
  +    case lists:keyfind(cacertfile, 1, Opts) of
  +      false -> ListenOpts1;
  +      CACertFile -> [CACertFile|ListenOpts1]
  +    end,
   	ssl:listen(Port, ListenOpts).
   
   %% @doc Accept an incoming connection on a listen socket.
  
positive.code: %%   certificate.</dd>
  %%  <dt>keyfile</dt><dd>Mandatory. Path to the file containing the user's
  %%   private PEM encoded key.</dd>
  %%  <dt>password</dt><dd>Mandatory. String containing the user's password.
  %%   All private keyfiles must be password protected currently.</dd>
  %% </dl>
  
negative.code: %% @todo The password option shouldn't be mandatory.
  -spec listen([{port, inet:ip_port()} | {certfile, string()}
  	| {keyfile, string()} | {password, string()}
  	| {cacertfile, string()} | {ip, inet:ip_address()}])
  	-> {ok, ssl:sslsocket()} | {error, atom()}.
  listen(Opts) ->
  	require([crypto, public_key, ssl]),
  