diff --git a/src/sakia/gui/dialogs/connection_cfg/model.py b/src/sakia/gui/dialogs/connection_cfg/model.py
index 6ce21f73dadaca1549975121246a782d2d7108ba..95f320c7f8d50154160e883cd157c1b65d650cde 100644
--- a/src/sakia/gui/dialogs/connection_cfg/model.py
+++ b/src/sakia/gui/dialogs/connection_cfg/model.py
@@ -81,8 +81,7 @@ class ConnectionConfigModel(QObject):
         :return:
         """
         log_stream("Parsing sources...")
-        await self.app.sources_service.refresh_sources_of_pubkey(self.connection.pubkey, transactions, dividends,
-                                                                 None, log_stream, progress)
+        await self.app.sources_service.initialize_sources(self.connection.pubkey, log_stream, progress)
         log_stream("Sources parsed succefully !")
 
     async def initialize_identity(self, identity, log_stream, progress):
diff --git a/src/sakia/services/sources.py b/src/sakia/services/sources.py
index 32f25f52af473628fb00d6bb033c18b49f3f2f25..f8f336ccd1bdd2ec9ea01434a96c268d675fd2ac 100644
--- a/src/sakia/services/sources.py
+++ b/src/sakia/services/sources.py
@@ -1,8 +1,10 @@
 from PyQt5.QtCore import QObject
 from duniterpy.api import bma, errors
 from duniterpy.documents import Transaction as TransactionDoc
+from duniterpy.grammars.output import Condition
 from duniterpy.documents import BlockUID
 import logging
+import pypeg2
 from sakia.data.entities import Source, Transaction,Dividend
 import hashlib
 
@@ -43,15 +45,14 @@ class SourcesServices(QObject):
         """
         txdoc = TransactionDoc.from_signed_raw(transaction.raw)
         for offset, output in enumerate(txdoc.outputs):
-            if output.conditions.left.pubkey == pubkey:
-                source = Source(currency=self.currency,
-                                pubkey=pubkey,
-                                identifier=txdoc.sha_hash,
-                                type='T',
-                                noffset=offset,
-                                amount=output.amount,
-                                base=output.base)
-                self._sources_processor.insert(source)
+            source = Source(currency=self.currency,
+                            pubkey=pubkey,
+                            identifier=txdoc.sha_hash,
+                            type='T',
+                            noffset=offset,
+                            amount=output.amount,
+                            base=output.base)
+            self._sources_processor.insert(source)
 
     def parse_transaction_inputs(self, pubkey, transaction):
         """
@@ -85,6 +86,27 @@ class SourcesServices(QObject):
                         base=dividend.base)
         self._sources_processor.insert(source)
 
+    async def initialize_sources(self, pubkey, log_stream, progress):
+        sources_data = await self._bma_connector.get(self.currency, bma.tx.sources, req_args={'pubkey': pubkey})
+        nb_sources = len(sources_data["sources"])
+        for i, s in enumerate(sources_data["sources"]):
+            log_stream("Parsing source ud/tx {:}/{:}".format(i, nb_sources))
+            progress(1/nb_sources)
+            conditions = pypeg2.parse(s["conditions"], Condition)
+            if conditions.left.pubkey == pubkey:
+                try:
+                    if conditions.left.pubkey == pubkey:
+                        source = Source(currency=self.currency,
+                                        pubkey=pubkey,
+                                        identifier=s["identifier"],
+                                        type=s["type"],
+                                        noffset=s["noffset"],
+                                        amount=s["amount"],
+                                        base=s["base"])
+                        self._sources_processor.insert(source)
+                except AttributeError as e:
+                    self._logger.error(str(e))
+
     async def check_destruction(self, pubkey, block_number, unit_base):
         amount = self._sources_processor.amount(self.currency, pubkey)
         if amount < 100 * 10 ** unit_base: