anchor.diff:      {reply, ok, S#state{histogram = NewH}};
   handle_call({request_new_piece, _}, _, S) when S#state.endgame =:= true ->
       {reply, endgame, S};
  -handle_call({request_new_piece, PeerPieces}, {From, _Tag}, S) ->
  +handle_call({request_new_piece, PeerPieces}, _From, S) ->
       EligiblePieces = sets:intersection(PeerPieces, S#state.piece_setorrent_missing),
       case etorrent_utils:sets_is_empty(EligiblePieces) of
   	true ->
  
positive.code: 		    PieceSize = find_piece_size(PieceNum, S),
  		    Missing = sets:del_element(PieceNum,
  					       S#state.piece_setorrent_missing),
  		    erlang:monitor(process, From),
  		    Assignments =
  			dict:update(From, fun(L) -> [PieceNum | L] end,
  				    [PieceNum], S#state.piece_assignment),
  		    {reply, {ok, PieceNum, PieceSize},
  		     S#state{piece_setorrent_missing = Missing,
  			     piece_assignment = Assignments}}
  	    end
      end;
  handle_call({report_from_tracker, Complete, Incomplete},
  
negative.code:     AmountLeft = calculate_amount_left(ControlPid),
      {ok, #state{piece_set = PieceSet,
  		piece_setorrent_missing = Missing,
  		num_pieces = Size,
  		piece_size = PieceSize,
  		histogram = etorrent_histogram:new(),
  