anchor.diff:              send_piece(Index, Offset, Len, NS)
       end.
   
  +%% Read in a piece from the file system
  +%% TODO: Only read in blocks rather than while pieces. Caching is the O/S's area
  +%%  of expertise.
   load_piece(Index, S) ->
       {ok, Piece} = etorrent_fs:read_piece(S#state.file_system_pid, Index),
       S#state{piece_cache = {Index, Piece}}.
  
positive.code: send_message(Msg, S) ->
      send_message(Msg, S, 0).
  
  send_message(Msg, S, Timeout) ->
      case send(Msg, S) of
          {ok, NS} -> {noreply, NS, Timeout};
  
negative.code:             %% Track uploaded size for torrent (for the tracker)
              ok = etorrent_torrent:statechange(S#state.torrent_id,
                                                {add_upload, Len}),
              %% Track the amount uploaded to this peer.
              send_piece_message(Msg, S, 0);
          %% Update cache and try again...
          {I, _Binary} when I /= Index ->
  