diff --git a/lib/rapi/baserlib.py b/lib/rapi/baserlib.py
index 5710000c604975dbe9f3314d6abd2e6b86f49a63..b44d454d2f967ff636eeaa2cf787b46c20673fd2 100644
--- a/lib/rapi/baserlib.py
+++ b/lib/rapi/baserlib.py
@@ -289,7 +289,7 @@ class ResourceBase(object):
   POST_ACCESS = [rapi.RAPI_ACCESS_WRITE]
   DELETE_ACCESS = [rapi.RAPI_ACCESS_WRITE]
 
-  def __init__(self, items, queryargs, req, _client_cls=luxi.Client):
+  def __init__(self, items, queryargs, req, _client_cls=None):
     """Generic resource constructor.
 
     @param items: a list with variables encoded in the URL
@@ -301,6 +301,10 @@ class ResourceBase(object):
     self.items = items
     self.queryargs = queryargs
     self._req = req
+
+    if _client_cls is None:
+      _client_cls = luxi.Client
+
     self._client_cls = _client_cls
 
   def _GetRequestBody(self):
diff --git a/lib/server/rapi.py b/lib/server/rapi.py
index 2bc0dc4f87c8ebc84dfb1d680acba3a683b00399..9157889c40ddfd690469f2f4606ef6fb5b3ee8ba 100644
--- a/lib/server/rapi.py
+++ b/lib/server/rapi.py
@@ -71,11 +71,12 @@ class RemoteApiHandler(http.auth.HttpServerRequestAuthentication,
   """
   AUTH_REALM = "Ganeti Remote API"
 
-  def __init__(self):
+  def __init__(self, _client_cls=None):
     # pylint: disable=W0233
     # it seems pylint doesn't see the second parent class there
     http.server.HttpServerHandler.__init__(self)
     http.auth.HttpServerRequestAuthentication.__init__(self)
+    self._client_cls = _client_cls
     self._resmap = connector.Mapper()
     self._users = None
 
@@ -132,7 +133,7 @@ class RemoteApiHandler(http.auth.HttpServerRequestAuthentication,
                      self._resmap.getController(req.request_path)
 
       ctx = RemoteApiRequestContext()
-      ctx.handler = HandlerClass(items, args, req)
+      ctx.handler = HandlerClass(items, args, req, _client_cls=self._client_cls)
 
       method = req.request_method.upper()
       try: