anchor.diff:              SmallestIndex = lists:min(element(2, lists:unzip(Counters)))
           end,
           Size = length(Counters),
  -        N = list_to_integer(couch_config:get("cluster", "n", "3")),
  +        N = n(),
           if Size == N andalso SmallestIndex == (Offset+1) ->
               NewChunkList = tl(ChunkList),
               NewOffset = Offset+1;
  
positive.code:     NewAcc = maybe_send_data({DataList++[Bytes], Offset, Counters, Waiting}),
      fun(Next) -> mp_parse_atts(Next, NewAcc) end;
  mp_parse_atts(eof, {DataList, Offset, Counters, Waiting}) ->
      N = list_to_integer(couch_config:get("cluster", "n", "3")),
      M = length(Counters),
      case (M == N) andalso DataList == [] of
      true ->
  
negative.code:     false ->
          erlang:demonitor(MonRef, [flush])
      end.
  
  % This exists to permit testing in small clusters (<3). A better fix
  % would use the database's own N value and would consider only the
  % nodes which hold at least one shard of the database.
  n() ->
      N = list_to_integer(couch_config:get("cluster", "n", "3")),
      NodeCount = length(nodes()) + 1,
      erlang:min(N, NodeCount).
  