anchor.diff:  
   -spec needreqs(peerstate()) -> boolean().
   needreqs(Peerstate) ->
  -    #peerstate{choked=Choked, requests=Requests} = Peerstate,
  -    not Choked andalso etorrent_rqueue:is_low(Requests).
  +    #peerstate{choked=Choked, interested=Interested, requests=Requests} = Peerstate,
  +    Interested andalso not Choked andalso etorrent_rqueue:is_low(Requests).
   
   
   -ifdef(TEST).
   -include_lib("eunit/include/eunit.hrl").
   -define(state, ?MODULE).
   -define(pset, etorrent_pieceset).
  +-define(rqueue, etorrent_rqueue).
   
   testsize() -> 8.
   
  
positive.code: 
  -spec seeder(boolean(), peerstate()) -> peerstate().
  seeder(Status, Peerstate) ->
      #peerstate{seeder=Current} = Peerstate,
      Status orelse erlang:error(badarg),
      Peerstate#peerstate{seeder=Status}.
  
  
negative.code:     [?_assert(?state:choked(State)),
       ?_assertNot(?state:interested(State)),
       ?_assertNot(?state:seeder(State)),
       ?_assertEqual(0, ?rqueue:size(?state:requests(State))),
       ?_assertNot(?state:needreqs(State)),
       ?_assertError(badarg, ?state:pieces(State)),
       ?_assertError(badarg, ?state:interesting(0, State))].
  
  