anchor.diff:  			Other -> Other
   		    end 
   	    end,
  -    Loop = fun(F3) ->  Loop2(Loop2,F3,1000) end,
  +    ?line Loop = fun(F3) ->  Loop2(Loop2,F3,1000) end,
       {Loop,A,R}.
  -    
  +
  +setup_active_timeout_sink(Timeout, AutoClose) ->
  +    ?line Dir = filename:dirname(code:which(?MODULE)),
  +    ?line {ok,R} = test_server:start_node(test_default_options_slave,slave,
  +				       [{args,"-pa " ++ Dir}]),    
  +    ?line Host = list_to_atom(lists:nth(2,string:tokens(atom_to_list(node()),"@"))),
  +    ?line {ok, L} = gen_tcp:listen(0, [binary,{active,false},{packet,0},{nodelay, true},{keepalive, true},
  +				 {send_timeout,Timeout},
  +				 {send_timeout_close,AutoClose}]),
  +    ?line Fun = fun(F) -> 
  +		  receive 
  +		      {From,X} when is_function(X) -> 
  +			  From ! {self(),X()}, F(F); 
  +		      die -> ok 
  +		  end 
  +	  end, 
  +    ?line Pid =  rpc:call(R,erlang,spawn,[fun() -> Fun(Fun) end]),
  +    ?line {ok, Port} = inet:port(L),
  +    ?line Remote = fun(Fu) -> 
  +		     Pid ! {self(), Fu}, 
  +		     receive {Pid,X} -> X 
  +		     end 
  +	     end,
  +    ?line {ok, C} = Remote(fun() -> 
  +			     gen_tcp:connect(Host,Port,
  +					     [{active,false}]) 
  +		     end),
  +    ?line {ok,A} = gen_tcp:accept(L),
  +    ?line gen_tcp:send(A,"Hello"),
  +    ?line {ok, "H"++_} = Remote(fun() -> gen_tcp:recv(C,0) end),
  +    ?line Loop2 = fun(_,_,0) -> 
  +		    {failure, timeout}; 
  +	       (L2,F2,N) -> 
  +		    Ret = F2(),
  +		    io:format("~p~n",[Ret]),
  +		    case Ret of
  +			ok -> receive after 1 -> ok end, 
  +			      L2(L2,F2,N-1);
  +			Other -> Other
  +		    end 
  +	    end,
  +    ?line Loop = fun(F3) ->  Loop2(Loop2,F3,1000) end,
  +    {Loop,A,R,C}.
  +
  +     
   millistamp() ->
       {Mega, Secs, Micros} = erlang:now(),
       (Micros div 1000) + Secs * 1000 + Mega * 1000000000.
  
positive.code:     {Loop,A}.
      
  setup_timeout_sink(Timeout, AutoClose) ->
      Dir = filename:dirname(code:which(?MODULE)),
      {ok,R} = test_server:start_node(test_default_options_slave,slave,
  				       [{args,"-pa " ++ Dir}]),    
      Host = list_to_atom(lists:nth(2,string:tokens(atom_to_list(node()),"@"))),
      {ok, L} = gen_tcp:listen(0, [{active,false},{packet,2},
  				 {send_timeout,Timeout},
  				 {send_timeout_close,AutoClose}]),
      Fun = fun(F) -> 
  		  receive 
  		      {From,X} when is_function(X) -> 
  			  From ! {self(),X()}, F(F); 
  		      die -> ok 
  		  end 
  	  end, 
      Pid =  rpc:call(R,erlang,spawn,[fun() -> Fun(Fun) end]),
      {ok, Port} = inet:port(L),
      Remote = fun(Fu) -> 
  		     Pid ! {self(), Fu}, 
  		     receive {Pid,X} -> X 
  		     end 
  	     end,
      {ok, C} = Remote(fun() -> 
  			     gen_tcp:connect(Host,Port,
  					     [{active,false},{packet,2}]) 
  		     end),
      {ok,A} = gen_tcp:accept(L),
      gen_tcp:send(A,"Hello"),
      {ok, "Hello"} = Remote(fun() -> gen_tcp:recv(C,0) end),
      Loop2 = fun(_,_,0) -> 
  		    {failure, timeout}; 
  	       (L2,F2,N) -> 
  		    Ret = F2(),
  
negative.code: 	 accept_timeouts_in_order/1,accept_timeouts_in_order2/1,
  	 accept_timeouts_in_order3/1,accept_timeouts_mixed/1, 
  	 killing_acceptor/1,killing_multi_acceptors/1,killing_multi_acceptors2/1,
  	 several_accepts_in_one_go/1,active_once_closed/1, send_timeout/1, send_timeout_active/1, 
  	 otp_7731/1, zombie_sockets/1, otp_7816/1, otp_8102/1]).
  
  %% Internal exports.
  