diff --git a/src/cutecoin/core/registry/identities.py b/src/cutecoin/core/registry/identities.py
index 0132ba97de2539e83d71db89c2e0798ba2b7f0ae..ba8857acd5c1c11a2f4b822eac68ea1e5cc8d316 100644
--- a/src/cutecoin/core/registry/identities.py
+++ b/src/cutecoin/core/registry/identities.py
@@ -47,8 +47,7 @@ class IdentitiesRegistry:
     @asyncio.coroutine
     def future_find(self, pubkey, community):
         def lookup():
-            identity = Identity.empty(pubkey)
-            self._instances[pubkey] = identity
+            nonlocal identity
             lookup_tries = 0
             while lookup_tries < 3:
                 try:
@@ -67,7 +66,6 @@ class IdentitiesRegistry:
                             identity.blockchain_state = BlockchainState.BUFFERED
                             identity.local_state = LocalState.PARTIAL
                             logging.debug("Lookup : found {0}".format(identity))
-                    return identity
                 except ValueError as e:
                     lookup_tries += 1
                 except asyncio.TimeoutError:
@@ -75,8 +73,7 @@ class IdentitiesRegistry:
                 except ClientError:
                     lookup_tries += 1
                 except NoPeerAvailable:
-                    return identity
-            return identity
+                    pass
 
         if pubkey in self._instances:
             identity = self._instances[pubkey]
@@ -92,8 +89,8 @@ class IdentitiesRegistry:
                     identity.blockchain_state = BlockchainState.VALIDATED
                     return identity
                 except ValueError as e:
-                    if '404' in str(e):
-                        return (yield from lookup())
+                    if '404' in str(e) or '400' in str(e):
+                        yield from lookup()
                     else:
                         tries += 1
                 except asyncio.TimeoutError:
diff --git a/src/cutecoin/gui/identities_tab.py b/src/cutecoin/gui/identities_tab.py
index a9a3e5dc3775216759c39b69a34a4de51a817780..7c39dfebbe68f2bda9de24bcc613e9773ec503df 100644
--- a/src/cutecoin/gui/identities_tab.py
+++ b/src/cutecoin/gui/identities_tab.py
@@ -222,6 +222,7 @@ class IdentitiesTabWidget(QWidget, Ui_IdentitiesTab):
         if self.account and self.community:
             try:
                 self.busy.show()
+                self.refresh_identities([])
                 self_identity = yield from self.account.identity(self.community)
                 account_connections = []
                 certs_of = yield from self_identity.unique_valid_certifiers_of(self.app.identities_registry, self.community)
@@ -238,7 +239,6 @@ class IdentitiesTabWidget(QWidget, Ui_IdentitiesTab):
             except NoPeerAvailable:
                 pass
             finally:
-                self.refresh_identities([])
                 self.busy.hide()
 
     @once_at_a_time
diff --git a/src/cutecoin/gui/transactions_tab.py b/src/cutecoin/gui/transactions_tab.py
index cf6a431ef728638ec1aa3479ee7c1b1ed8a8d0bb..8ef3ee4075815b6012ef9c8d0665726be47ddb9d 100644
--- a/src/cutecoin/gui/transactions_tab.py
+++ b/src/cutecoin/gui/transactions_tab.py
@@ -98,6 +98,8 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
             self.date_to.setMaximumDateTime(tomorrow_datetime)
         except NoPeerAvailable as e:
             logging.debug(str(e))
+        except ValueError as e:
+            logging.debug(str(e))
 
     def refresh(self):
         #TODO: Use resetmodel instead of destroy/create