diff --git a/src/cutecoin/core/net/api/bma/access.py b/src/cutecoin/core/net/api/bma/access.py
index cb830c1877683ee8a80d38ad01f0a1f3e1e46133..b9e444ddcfee8d079f68851f103e61ccb6b91eac 100644
--- a/src/cutecoin/core/net/api/bma/access.py
+++ b/src/cutecoin/core/net/api/bma/access.py
@@ -169,12 +169,13 @@ class BmaAccess(QObject):
                     tries += 1
                 except ClientError:
                     tries += 1
-                except TimeoutError:
+                except asyncio.TimeoutError:
                     tries += 1
         if len(nodes) == 0 or json_data is None:
             raise NoPeerAvailable("", len(nodes))
         return json_data
 
+    @asyncio.coroutine
     def simple_request(self, request, req_args={}, get_args={}):
         """
         Start a request to the network but don't cache its result.
@@ -199,11 +200,12 @@ class BmaAccess(QObject):
                     tries += 1
                 except ClientError:
                     tries += 1
-                except TimeoutError:
+                except asyncio.TimeoutError:
                     tries += 1
         else:
             raise NoPeerAvailable("", len(nodes))
 
+    @asyncio.coroutine
     def broadcast(self, request, req_args={}, post_args={}):
         """
         Broadcast data to a network.
@@ -233,7 +235,7 @@ class BmaAccess(QObject):
                         raise
                 except ClientError:
                     pass
-                except TimeoutError:
+                except asyncio.TimeoutError:
                     pass
         else:
             raise NoPeerAvailable("", len(nodes))
diff --git a/src/cutecoin/core/net/node.py b/src/cutecoin/core/net/node.py
index 8150f46e79876dec351f4ff0849225adc513a8fb..5e72af21cc6658f101fe20b54ec22b3667a95747 100644
--- a/src/cutecoin/core/net/node.py
+++ b/src/cutecoin/core/net/node.py
@@ -442,6 +442,12 @@ class Node(QObject):
                     except ValueError as e:
                         logging.debug("Error in leaf reply")
                         self.changed.emit()
+                    except ClientError:
+                        logging.debug("Client error : {0}".format(self.pubkey))
+                        self.state = Node.OFFLINE
+                    except asyncio.TimeoutError:
+                        logging.debug("Timeout error : {0}".format(self.pubkey))
+                        self.state = Node.OFFLINE
                 self._last_merkle = {'root' : peers_data['root'],
                                      'leaves': peers_data['leaves']}
         except ValueError as e: