anchor.diff:                 private_key = PrivateKey},
           Org, Node, Message) ->
       Address = addr_node_map_lookup_by_node(AddrNodeMap, {Org, Node}),
  -    send_multipart(CommandSocket, Address,
  -        [pushy_util:signed_header_from_message(PrivateKey, Message), Message]).
  -
  -do_send_multi(State, Org, Nodes, Message) ->
  -    [ do_send(State, Org, Node, Message) || Node <- Nodes ].
  +    push_messaging:send_message(CommandSocket, [Address, pushy_util:signed_header_from_message(PrivateKey, Message), Message]).
  +
  +do_send_multi(#state{addr_node_map = AddrNodeMap,
  +                     command_sock = CommandSocket,
  +                     private_key = PrivateKey},
  +              Org, Nodes, Message) ->
  +    FrameList = [ pushy_util:signed_header_from_message(PrivateKey, Message), Message],
  +    AddressList = [addr_node_map_lookup_by_node(AddrNodeMap, {Org, Node}) || Node <- Nodes],
  +    pushy_messaging:send_message_multi(CommandSocket, AddressList, FrameList).
   
   process_message(State, Address, _Header, Body) ->
       case catch jiffy:decode(Body) of
  
positive.code: %% Utility functions; we should generalize these and move elsewhere.
  %%
  
  %read_address_separator() ->
  %    receive
  %        {zmq, _Sock, <<>>, [rcvmore]} ->
  %            ok;
  %        {zmq, _Sock, Msg, Opts} ->
  %            ?debugVal(Msg), ?debugVal(Opts),
  %            error
  %    end.
  
  read_header() ->
      receive
          {zmq, _Sock, HeaderFrame, [rcvmore]} ->
              HeaderFrame;
          {zmq, _Sock, Msg, Opts} ->
              ?debugVal(Msg), ?debugVal(Opts),
              error
      end.
  
  addr_node_map_new() ->
      { dict:new(), dict:new() }.
  
negative.code: addr_node_map_lookup_by_node({_, NodeToAddr}, Node) ->
      dict:fetch(Node, NodeToAddr).
  
  
  