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)