 
   _updateLayout: (err, transaction, push, next) ->
     # Notify to the layout that the path is used
-    needsNotify = no
 
     for path in _(transaction.inputs.concat(transaction.outputs)).chain().map((i) -> i.paths).flatten().compact().value()
       l "Notify used ", path
-      needsNotify = ledger.wallet.Wallet.instance.getAccountFromDerivationPath(path).notifyPathsAsUsed([path]) or needsNotify
-
-    @_notifyNewPathAreAvailable() if needsNotify # Clear and fetch the cache
+      ledger.wallet.Wallet.instance.getAccountFromDerivationPath(path).notifyPathsAsUsed([path])
+
     push null, transaction
     do next
 

          l "HEY OK SEE NEXT 0.1"
        else if !databaseAccount?
          # No account found. Try to pull before recovering
          ledger.database.contexts.main.refresh().then ->
            pulled = yes
            createAccount()

  _requestDerivations: ->
    d = ledger.defer()
    ledger.wallet.pathsToAddresses ledger.wallet.Wallet.instance.getAllObservedAddressesPaths(), (addresses) ->
      l "REQUEST DERIVATION ", ledger.wallet.Wallet.instance.getAllObservedAddressesPaths()
      d.resolve(_.invert(addresses))
    d.promise

  _getAddressCache: -> @_requestDerivations()

  ###
    Extends the given transaction with derivation paths and related accounts
