diff --git a/lib/rpc.py b/lib/rpc.py
index 559931175c7c5ca4363be8f0c6249448f4179531..b00506d6a2f0f3a3df295b9cf27cbfa14bf5ed86 100644
--- a/lib/rpc.py
+++ b/lib/rpc.py
@@ -417,10 +417,11 @@ class _RpcProcessor:
     @param read_timeout: Read timeout for request
 
     """
-    assert procedure in _TIMEOUTS, "RPC call not declared in the timeouts table"
-
     if read_timeout is None:
-      read_timeout = _TIMEOUTS[procedure]
+      read_timeout = _TIMEOUTS.get(procedure, None)
+
+    assert read_timeout is not None, \
+      "Missing RPC read timeout for procedure '%s'" % procedure
 
     (results, requests) = \
       self._PrepareRequests(self._resolver(hosts), self._port, procedure,
diff --git a/test/ganeti.rpc_unittest.py b/test/ganeti.rpc_unittest.py
index 68d950d42c5d90ee6a7291fc6787f07404c2fca3..21f536d209d8843da2a7716afae34fe2b379e911 100755
--- a/test/ganeti.rpc_unittest.py
+++ b/test/ganeti.rpc_unittest.py
@@ -36,16 +36,6 @@ from ganeti import objects
 import testutils
 
 
-class TestTimeouts(unittest.TestCase):
-  def test(self):
-    names = [name[len("call_"):] for name in dir(rpc.RpcRunner)
-             if name.startswith("call_")]
-    self.assertEqual(len(names), len(rpc._TIMEOUTS))
-    self.assertFalse([name for name in names
-                      if not (rpc._TIMEOUTS[name] is None or
-                              rpc._TIMEOUTS[name] > 0)])
-
-
 class _FakeRequestProcessor:
   def __init__(self, response_fn):
     self._response_fn = response_fn
@@ -229,7 +219,8 @@ class TestRpcProcessor(unittest.TestCase):
     http_proc = \
       _FakeRequestProcessor(compat.partial(self._GetHttpErrorResponse,
                                            httperrnodes, failnodes))
-    result = proc(nodes, "vg_list", None, _req_process_fn=http_proc)
+    result = proc(nodes, "vg_list", None, _req_process_fn=http_proc,
+                  read_timeout=rpc._TMO_URGENT)
     self.assertEqual(sorted(result.keys()), sorted(nodes))
 
     for name in nodes: