anchor.diff:  	    {ok, LSock} = gen_tcp:listen(0, [{ip, IP}, {active, false},
   					     binary, {packet, 0}]),
   	    {ok, Port} = inet:port(LSock),
  -	    {IP1, IP2, IP3, IP4} = IP,
  -	    {Port1, Port2} = {Port div 256, Port rem 256},
  -	    send_ctrl_message(State, 
  -			      mk_cmd("PORT ~w,~w,~w,~w,~w,~w",
  -				     [IP1, IP2, IP3, IP4, Port1, Port2])),
  +	    case FtpExt of
  +	    	false ->
  +			    {IP1, IP2, IP3, IP4} = IP,
  +			    {Port1, Port2} = {Port div 256, Port rem 256},
  +			    send_ctrl_message(State, 
  +					      mk_cmd("PORT ~w,~w,~w,~w,~w,~w",
  +						     [IP1, IP2, IP3, IP4, Port1, Port2]));
  +			true -> 
  +			    IpAddress = inet_parse:ntoa(IP),
  +			    Cmd = mk_cmd("EPRT |1|~s|~p|", [IpAddress, Port]),
  +			    send_ctrl_message(State, Cmd)
  +		end,	        
   	    activate_ctrl_connection(State),
   	    {noreply, State#state{caller = {setup_data_connection, 
   					    {LSock, Caller}}}}
  
positive.code: 
  setup_data_connection(#state{mode   = active, 
  			     caller = Caller, 
  			     csock  = CSock} = State) ->    
      case (catch sockname(CSock)) of
  	{ok, {{_, _, _, _, _, _, _, _} = IP, _}} ->
  	    {ok, LSock} = 
  
negative.code: 	    DTimeout = key_search(dtimeout, Opts, ?DATA_ACCEPT_TIMEOUT),
  	    Progress = key_search(progress, Opts, ignore),
  	    IpFamily = key_search(ipfamily, Opts, inet),
  	    FtpExt   = key_search(ftp_extension, Opts, ?FTP_EXT_DEFAULT),
  
  	    State2 = State#state{client   = From, 
  				 mode     = Mode,
  				 progress = progress(Progress),
  				 ipfamily = IpFamily, 
  				 dtimeout = DTimeout,
  				 ftp_extension = FtpExt}, 
  
  	    ?fcrd("handle_call(open) -> setup ctrl connection with", 
  		  [{host, Host}, {port, Port}, {timeout, Timeout}]), 
  