anchor.diff:  handle_cast(unchoke, State) ->
       {noreply, send_unchoke(State)};
   handle_cast(datagram_sent, State) ->
  -    {noreply, transmit_next_piece(State)}.
  +    case State#cstate.me_choking of
  +	true ->
  +	    {noreply, State};
  +	false ->
  +	    {noreply, transmit_next_piece(State#cstate{transmitting = false})}
  +    end.
   
   handle_info({'EXIT', _FromPid, Reason}, State) ->
       error_logger:warning_msg("Recv loop exited: ~s~n", [Reason]),
  
positive.code:     NewQ = remove_from_queue({Index, Begin, Len}, State#cstate.his_requested_queue),
      State#cstate{his_requested_queue = NewQ};
  handle_message({request, Index, Begin, Len}, State) ->
      case queue:is_empty(State#cstate.his_requested_queue) of
  	false ->
  	    {noreply, insert_into_his_queue({Index, Begin, Len}, State)};
  	true ->
  	    case State#cstate.me_choking of
  		no ->
  		    {noreply, insert_into_his_queue({Index, Begin, Len}, State)};
  		yes ->
  		    transmit_piece(Index, Begin, Len, State),
  	            {noreply, State}
  	    end
      end.
  
  transmit_next_piece(State) ->
      case queue:out(State#cstate.his_requested_queue) of
  	{{value, {Index, Begin, Len}}, Q} ->
  	    transmit_piece(Index, Begin, Len, State),
  	    State#cstate{his_requested_queue = Q};
  	{empty, _Q} ->
  	    State
      end.
  
  transmit_piece(Index, Begin, Len, State) ->
  
negative.code: 		 he_choking = true,
  		 he_interested = false,
  		 socket = none,
  		 transmitting = false,
  		 connection_manager_pid = no,
  		 name = no,
  		 send_pid = no,
  