anchor.diff:          selector = bson:append({<<"getlasterror">>, 1}, Params)
         },
         {ok, Id} = mc_worker_logic:make_request(Socket, ConnState#conn_state.database, [Request, ConfirmWrite]), % ordinary write request
  +      inet:setopts(Socket, [{active, once}]),
         RespFun = mc_worker_logic:get_resp_fun(Request, From),
         UReqStor = dict:store(Id, RespFun, ReqStor),  % save function, which will be called on response
         {noreply, State#state{request_storage = UReqStor}}
     end;
  +
  +
  +
   handle_call(Request, From, State = #state{socket = Socket, request_storage = RequestStorage, conn_state = CS}) % read requests
  -  when is_record(Request, 'query'); is_record(Request, getmore) ->
  +  when is_record(Request, 'query'); is_record(Request, getmore)
  +  ->
  +
     UpdReq = case is_record(Request, 'query') of
  -             true -> Request#'query'{slaveok = CS#conn_state.read_mode =:= slave_ok};
  +             true ->
  +                case Request#'query'.sok_overriden of
  +                  true ->
  +                    Request;
  +                  false ->
  +                    Request#'query'{slaveok = CS#conn_state.read_mode =:= slave_ok}
  +                end;
                false -> Request
              end,
  +
     {ok, Id} = mc_worker_logic:make_request(Socket, CS#conn_state.database, UpdReq),
     RespFun = mc_worker_logic:get_resp_fun(UpdReq, From),  % save function, which will be called on response
     URStorage = dict:store(Id, RespFun, RequestStorage),
     {noreply, State#state{request_storage = URStorage}};
  +
  +
   handle_call(Request = #killcursor{}, _, State = #state{socket = Socket, conn_state = ConnState}) ->
     {ok, _} = mc_worker_logic:make_request(Socket, ConnState#conn_state.database, Request),
     {reply, ok, State};
  +
   handle_call({stop, _}, _From, State) -> % stop request
     {stop, normal, ok, State}.
  +
   
   %% @hidden
   handle_cast(halt, State) ->
  
positive.code:   RMode = mc_utils:get_value(r_mode, Options, master),
    WMode = mc_utils:get_value(w_mode, Options, unsafe),
    #conn_state{database = Database, read_mode = RMode, write_mode = WMode}.
  
  %% @private
  %% Register this process if needed
  
negative.code: code_change(_Old, State, _Extra) ->
    {ok, State}.
  
  
  
  %% @private
  %% Parses proplist to record
  form_state(Options) ->
  