diff --git a/src/sakia/data/processors/dividends.py b/src/sakia/data/processors/dividends.py
index 578dc6d850ada2d3fd28fd59e39399af2cd33ad8..3a8206663634d548db370f7e60d810715fa1940f 100644
--- a/src/sakia/data/processors/dividends.py
+++ b/src/sakia/data/processors/dividends.py
@@ -61,7 +61,7 @@ class DividendsProcessor:
         for tx in transactions:
             txdoc = Transaction.from_signed_raw(tx.raw)
             for input in txdoc.inputs:
-                if input.source == "D" and input.index not in block_numbers:
+                if input.source == "D" and input.origin_id == identity.pubkey and input.index not in block_numbers:
                     block = await self._bma_connector.get(identity.currency,
                                                           bma.blockchain.block, req_args={'number': input.index})
 
@@ -69,8 +69,8 @@ class DividendsProcessor:
                                         pubkey=identity.pubkey,
                                         block_number=input.index,
                                         timestamp=block["medianTime"],
-                                        amount=input.amount,
-                                        base=input.base)
+                                        amount=block["dividend"],
+                                        base=block["unitbase"])
                     log_stream("Dividend of block {0}".format(dividend.block_number))
                     try:
                         self._repo.insert(dividend)
diff --git a/src/sakia/services/transactions.py b/src/sakia/services/transactions.py
index 7ba6b639c6e22280f5e5f6724fba1afbfa27dccc..768d10c5bbfad80098760ea15a1fc317498dc511 100644
--- a/src/sakia/services/transactions.py
+++ b/src/sakia/services/transactions.py
@@ -1,6 +1,7 @@
 from PyQt5.QtCore import QObject
 from sakia.data.entities.transaction import parse_transaction_doc
 from duniterpy.documents import SimpleTransaction
+from sakia.data.entities import Dividend
 import logging
 
 
@@ -47,8 +48,17 @@ class TransactionsService(QObject):
                             if not self._transactions_processor.find_by_hash(t.sha_hash)
                             and SimpleTransaction.is_simple(t)]
         connections_pubkeys = [c.pubkey for c in self._connections_processor.connections_to(self.currency)]
-        for (i, tx_doc) in enumerate(new_transactions):
-            for pubkey in connections_pubkeys:
+        for pubkey in connections_pubkeys:
+            if block_doc.ud:
+                dividend = Dividend(currency=self.currency,
+                                    pubkey=pubkey,
+                                    block_number=block_doc.number,
+                                    timestamp=block_doc.mediantime,
+                                    amount=block_doc.ud,
+                                    base=block_doc.unit_base)
+                self._dividends_processor.commit(dividend)
+
+            for (i, tx_doc) in enumerate(new_transactions):
                 tx = parse_transaction_doc(tx_doc, pubkey, block_doc.blockUID.number,  block_doc.mediantime, txid+i)
                 if tx:
                     new_transfers.append(tx)