anchor.diff:  
   %% <BACKWARD-COMPATIBILLITY>
   open({option_list, Options}) when is_list(Options) ->
  -    try
  -        {ok, StartOptions} = start_options(Options),
  -        {ok, OpenOptions}  = open_options(Options),
  -        {ok, SockOpts}  = socket_options(Options),
  -        case ftp_sup:start_child([[[{client, self()} | StartOptions], []]]) of
  -            {ok, Pid} ->
  -                call(Pid, {open, ip_comm, OpenOptions, SockOpts}, plain);
  -            Error1 ->
  -                Error1
  -        end
  -    catch
  -        throw:Error2 ->
  -            Error2
  -    end;
  +    start_service(Options);
   %% </BACKWARD-COMPATIBILLITY>
   
   open(Host) ->
  
positive.code: handle_call({Pid, _}, _, #state{owner = Owner} = State) when Owner =/= Pid ->
      {reply, {error, not_connection_owner}, State};
  
  handle_call({_, {open, ip_comm, Opts, {CtrlOpts, DataPassOpts, DataActOpts}}}, From, State) ->
      case key_search(host, Opts, undefined) of
          undefined ->
              {stop, normal, {error, ehost}, State};
  
negative.code:                     {stop, normal, State2#state{client = undefined}}
              end
      end;
  
  handle_call({_, {user, User, Password}}, From,
              #state{csock = CSock} = State) when (CSock =/= undefined) ->
  