anchor.diff:      end;
   
   handle_call({get_proc, Lang}, {Client, _} = From, State) ->
  -    IterFun = fun(Proc0, _Acc) ->
  -        Proc = Proc0#proc{client = erlang:monitor(process, Client)},
  -        ets:insert(State#state.tab, Proc),
  -        {stop, Proc}
  +    IterFun = fun(Proc, _Acc) ->
  +        {stop, assign_proc(State#state.tab, Client, Proc)}
       end,
       try iter_procs(State#state.tab, Lang, IterFun, nil) of
       {not_found, _} ->
  
positive.code:     {reply, ets:info(State#state.tab, size), State};
  
  handle_call({get_proc, #doc{body={Props}}=DDoc, DDocKey}, From, State) ->
      Lang = couch_util:get_value(<<"language">>, Props, <<"javascript">>),
      IterFun = fun(Proc0, Acc) ->
          case lists:member(DDocKey, Proc0#proc.ddoc_keys) of
              true ->
                  {Client, _} = From,
                  Proc = Proc0#proc{client = erlang:monitor(process, Client)},
                  ets:insert(State#state.tab, Proc),
                  {stop, Proc};
              false ->
                  {ok, Acc}
          end
      end,
      TeachFun = fun(Proc0, Acc) ->
          try
              {ok, Proc} = teach_ddoc(DDoc, DDocKey, Proc0),
              {stop, Proc}
          catch _:_ ->
              {ok, Acc}
          end
  
negative.code: 
  handle_info({'EXIT', _, {ok, Proc0, {Client,_} = From}}, State) ->
      link(Proc0#proc.pid),
      Proc = assign_proc(State#state.tab, Client, Proc0),
      gen_server:reply(From, {ok, Proc, get_query_server_config()}),
      {noreply, State};
  
  handle_info({'EXIT', Pid, Reason}, State) ->
  