anchor.diff:      erlang:demonitor(Ref),
       {reply, ok, S#state{controlling_process=Pid,
                           cp_monitor=erlang:monitor(process, Pid)}};
  -handle_call({new_client, CliSock}, _From, S = #state{controlling_process=P,
  +handle_call({new_client, _CliSock}, _From, S = #state{controlling_process=P,
                                                        listen_socket=Socket,
                                                        options=O}) ->
       ClientHandler =  proplists:get_value(client_handler, O,
  
positive.code:                 cp_monitor=erlang:monitor(process, Parent),
                  host=Host,
                  port=Port,
                  options=Options}}.
  
  %%--------------------------------------------------------------------
  %% @private
  
negative.code: 
  gen_tcp_options(Options) ->
      lists:filter(fun (O) -> my_option(O) == false end,
                   proplists:unfold(proplists:normalize(Options, []))).
  
  default_client_handler(Parent, ClientSocket) ->
      gen_tcp:controlling_process(ClientSocket, Parent),
  