anchor.diff:      % Forward the request list to each Addr.
       {NumFwd, Monitors} =
           lists:foldl(fun ({Addr, HEList}, Acc) ->
  -                        accum(send([Addr], Out, send_list,
  +                        accum(send([Addr], OutCork, send_list,
                                      lists:reverse([HE | HEList]),
                                      ResponseFilter, ?MODULE,
                                      undefined), Acc)
                       end,
                       {0, []}, Groups),
       await_ok(NumFwd),
  -    mc_binary:send(Out, res, H#mc_header{status = ?SUCCESS}, E),
  +    mc_binary:send(OutFinal, res, H#mc_header{status = ?SUCCESS}, E),
       mc_downstream:demonitor(Monitors),
       {ok, Sess#session_proxy{corked = []}}.
   
  -% Calls forward_bcast, but filters out any responses
  -% that have the same Opcode as the request.
  -forward_bcast_filter(BCastKind, Opcode, Sess, Out, HE) ->
  +forward_bcast_uncork(Opcode, Sess, OutCork, OutFinal, HE) ->
       ResponseFilter =
           fun (#mc_header{opcode = ROpcode}, _REntry) ->
               ROpcode =/= Opcode
           end,
  -    forward_bcast(BCastKind, Opcode, Sess, Out, HE, ResponseFilter).
  +    forward_bcast_uncork(Opcode, Sess, OutCork, OutFinal, HE,
  +                         ResponseFilter).
   
   % ------------------------------------------
   
  
positive.code: % For binary commands to do a broadcast scatter/gather,
  % grouping and uncorking queued requests.
  % A ResponseFilter can be used to filter out responses.
  forward_bcast(uncork, _Opcode, #session_proxy{bucket = Bucket,
                                                corked = C} = Sess,
                Out, {H, E} = HE, ResponseFilter) ->
      % Group our corked requests by Addr.
      Groups =
          group_by(C, fun ({_CorkedHeader, #mc_entry{key = Key}}) ->
  
negative.code:     queue(Sess, HE);
  cmd(?GETKQ, Sess, _Sock, _Out, HE) ->
      queue(Sess, HE);
  
  cmd(?SETQ, Sess, _Sock, Out, HE) ->
      {ok, Sess2} = queue(Sess, HE),
      forward_bcast_uncork(?NOOP, Sess2, Out, undefined,
                           {#mc_header{opcode = ?NOOP}, #mc_entry{}});
  cmd(?ADDQ, Sess, _Sock, Out, HE) ->
      {ok, Sess2} = queue(Sess, HE),
      forward_bcast_uncork(?NOOP, Sess2, Out, undefined,
                           {#mc_header{opcode = ?NOOP}, #mc_entry{}});
  cmd(?REPLACEQ, Sess, _Sock, Out, HE) ->
      {ok, Sess2} = queue(Sess, HE),
      forward_bcast_uncork(?NOOP, Sess2, Out, undefined,
                           {#mc_header{opcode = ?NOOP}, #mc_entry{}});
  cmd(?DELETEQ, Sess, _Sock, Out, HE) ->
      {ok, Sess2} = queue(Sess, HE),
      forward_bcast_uncork(?NOOP, Sess2, Out, undefined,
                           {#mc_header{opcode = ?NOOP}, #mc_entry{}});
  cmd(?INCREMENTQ, Sess, _Sock, Out, HE) ->
      {ok, Sess2} = queue(Sess, HE),
      forward_bcast_uncork(?NOOP, Sess2, Out, undefined,
                           {#mc_header{opcode = ?NOOP}, #mc_entry{}});
  cmd(?DECREMENTQ, Sess, _Sock, Out, HE) ->
      {ok, Sess2} = queue(Sess, HE),
      forward_bcast_uncork(?NOOP, Sess2, Out, undefined,
                           {#mc_header{opcode = ?NOOP}, #mc_entry{}});
  cmd(?APPENDQ, Sess, _Sock, Out, HE) ->
      {ok, Sess2} = queue(Sess, HE),
      forward_bcast_uncork(?NOOP, Sess2, Out, undefined,
                           {#mc_header{opcode = ?NOOP}, #mc_entry{}});
  cmd(?PREPENDQ, Sess, _Sock, Out, HE) ->
      {ok, Sess2} = queue(Sess, HE),
      forward_bcast_uncork(?NOOP, Sess2, Out, undefined,
                           {#mc_header{opcode = ?NOOP}, #mc_entry{}});
  
  % ------------------------------------------
  
  