anchor.diff:  	    gen_server:reply(From, Error),
   	    {noreply,State#state{client = undefined, caller = undefined}}
       end;
  +
  +handle_ctrl_result({pos_compl, Lines}, 
  +		   #state{mode     = passive, 
  +			  ipfamily = inet,
  +			  client   = From,
  +			  caller   = {setup_data_connection, Caller},
  +			  csock    = CSock,
  +			  timeout  = Timeout,
  +			  ftp_extension = true} = State) ->
  +      
  +    [_, PortStr | _] =  lists:reverse(string:tokens(Lines, "|")),
  +    {ok, {IP, _}} = peername(CSock),
  +
  +    ?DBG('<--data tcp connect to ~p:~p, Caller=~p~n',[IP,PortStr,Caller]),
  +	case connect(IP, list_to_integer(PortStr), Timeout, State) of
  +		{ok, _, Socket} ->	       
  +		    handle_caller(State#state{caller = Caller, dsock = {tcp, Socket}});
  +		{error, _Reason} = Error ->
  +		    gen_server:reply(From, Error),
  +		    {noreply, State#state{client = undefined, caller = undefined}}
  +    end;
  +   
   
   %% FTP server does not support passive mode: try to fallback on active mode
   handle_ctrl_result(_, 
  
positive.code: 			  ipfamily = inet,
  			  client   = From,
  			  caller   = {setup_data_connection, Caller},
  			  timeout  = Timeout} = State) ->
      
      {_, [?LEFT_PAREN | Rest]} = 
  	lists:splitwith(fun(?LEFT_PAREN) -> false; (_) -> true end, Lines),
  
negative.code: 	  ipfamily,     % inet | inet6 | inet6fb4
  	  progress = ignore,   % ignore | pid()	    
  	  dtimeout = ?DATA_ACCEPT_TIMEOUT,  % non_neg_integer() | infinity
  	  tls_upgrading_data_connection = false,
  	  ftp_extension = ?FTP_EXT_DEFAULT
  	 }).
  
  
  