diff --git a/src/sakia/core/net/api/bma/access.py b/src/sakia/core/net/api/bma/access.py
index ce82c2831ec4353f7367f62e5d38bcb2eac6753e..5a8b9e0ce2150a1c8ddd6859096bb1dbeb303e2e 100644
--- a/src/sakia/core/net/api/bma/access.py
+++ b/src/sakia/core/net/api/bma/access.py
@@ -307,17 +307,19 @@ class BmaAccess(QObject):
logging.debug("Trying to connect to : " + node.pubkey)
conn_handler = node.endpoint.conn_handler()
req = request(conn_handler, **req_args)
- try:
- reply = await req.post(**post_args)
- replies.append(reply)
- except ValueError as e:
- if '404' in str(e) or '400' in str(e):
- raise
- except (ClientError, gaierror):
- pass
- except asyncio.TimeoutError:
- pass
+ reply = asyncio.ensure_future(req.post(**post_args))
+ replies.append(reply)
self._invalidate_cache(request)
else:
raise NoPeerAvailable("", len(nodes))
- return tuple(replies)
+
+ try:
+ result = await asyncio.gather(*replies)
+ except ValueError as e:
+ if '404' in str(e) or '400' in str(e):
+ raise
+ except (ClientError, gaierror):
+ pass
+ except asyncio.TimeoutError:
+ pass
+ return tuple(result)