anchor.diff:          [Worker | Free2] ->
              ok
           end,
  -        monitor_use(FromPid, Worker, Callers),
  +        monitor_client(Callers, Worker, From),
           NewState = State#state{free = Free2, busy = [Worker | Busy]},
           {reply, {ok, Worker}, NewState}
       end;
  
positive.code:     lists:foreach(fun ibrowse_http_client:stop/1, State#state.free),
      lists:foreach(fun ibrowse_http_client:stop/1, State#state.busy).
  
  monitor_use(Pid, Worker, Callers) ->
      MonitorRef = erlang:monitor(process, Pid),
      ets:insert(Callers, {Worker, MonitorRef}).
  
  demonitor_worker(Callers, Worker) ->
      case ets:lookup(Callers,Worker) of
      [] -> ok;
      [{Worker, MonRef}] ->
          ets:delete(Callers,Worker),
          erlang:demonitor(MonRef)
      end.
  
negative.code:     {ok, State}.
  
  
  handle_call(get_worker, From, #state{waiting = Waiting, callers = Callers} = State) ->
      #state{url = Url, limit = Limit, busy = Busy, free = Free} = State,
      case length(Busy) >= Limit of
      true ->
  