anchor.diff:  
   handle_cast({mark_dropped, Pid, Index, Offset, Length}, State) ->
       #state{
  +        pieces_begun=Begun,
           pieces_assigned=Assigned,
           chunks_assigned=AssignedChunks,
           peer_monitors=Peers} = State,
  
positive.code:      NewChunks = etorrent_chunkset:insert(Offset, Length, Chunks),
       NewAssignedChunks = array:set(Index, NewChunks, AssignedChunks),
  
       %% This piece is no longer in the assigned state
       NewAssigned = etorrent_pieceset:delete(Index, Assigned),
   
       NewState = State#state{
           pieces_assigned=NewAssigned,
           chunks_assigned=NewAssignedChunks,
           peer_monitors=NewPeers},
  
negative.code:         not_stored ->
              {reply, {error, not_stored}, State};
          stored ->
              %% A piece never leaves the stored state if it is marked valid.
              NewValid = etorrent_pieceset:insert(Index, Valid),
              NewState = State#state{pieces_valid=NewValid},
              {reply, ok, NewState}
      end;
  
  