anchor.diff:      %% a connection when the driver queue is empty. We will test here
       %% that it also works when the driver queue is not empty
       %% and the linger zero option is set on the listen socket.
  +    {OS, Client, Server} = lzs_pre(Config),
  +
  +    PayloadSize = 1024 * 1024,
  +    {ok, Sender} = lzs_populate(Client, OS, PayloadSize),
  +
  +    ?P("verify linger: {true, 0}"),
  +    {ok, [{linger, {true, 0}}]} = inet:getopts(Server, [linger]),
  +    ?P("close client socket"),
  +    ok = gen_tcp:close(Server),
  +    ok = ct:sleep(1),
  +
  +    lzs_verify(Client, Server, PayloadSize),
  +
  +    ?P("cleanup"), % Just in case
  +    (catch gen_tcp:close(Server)),
  +    if is_pid(Sender) -> exit(Sender, kill);
  +       true           -> ok
  +    end,
  +
  +    ?P("done"),
  +    ok.
  +
  +lzs_pre(Config) ->
       {OS, _} = os:type(),
       ?P("create listen socket"),
  -    {ok, Listen} =
  -        ?LISTEN(Config, 0, [{active, false},
  -                           {recbuf, 4096},
  -                           {show_econnreset, true},
  -                           {linger, {true, 0}}]),
  +    {ok, Listen} = ?LISTEN(Config, 0, [{active,          false},
  +                                       {recbuf,          4096},
  +                                       {show_econnreset, true},
  +                                       {linger,          {true, 0}}]),
       {ok, Port} = inet:port(Listen),
       ?P("connect (create client socket)"),
  -    Client =
  -        case ?CONNECT(Config, localhost, Port,
  -                             [{active, false}, {sndbuf, 4096}]) of
  +    Client = case ?CONNECT(Config, localhost, Port,
  +                           [{nodelay, true},
  +                            {active,  false},
  +                            {sndbuf,  4096}]) of
               {ok, CSock} ->
                   CSock;
               {error, eaddrnotavail = Reason} ->
  
positive.code: 
  lz_populate_sender(Client, PayloadSize) ->
      ?P("[socket] create payload"),
      Payload = lists:duplicate(PayloadSize, $.),
      ?P("[socket] send payload (expect failure)"), 
      {error, closed} = gen_tcp:send(Client, Payload),
      ?P("[socket] payload send failed (as expected)"), 
  
negative.code:     {error, econnreset} = gen_tcp:recv(Server, PayloadSize),
      ok.
  
  lz_make_payload(PayloadSize) ->
      list_to_binary(lists:duplicate(PayloadSize, $.)).
  
  %% THIS DOES NOT WORK FOR 'SOCKET'
  lz_ensure_non_empty_queue(Sock, Payload, OS) when is_port(Sock) ->
  