diff --git a/src/sakia/data/processors/blockchain.py b/src/sakia/data/processors/blockchain.py
index a1d55408a95248864a66fb17f1868afe42a445a3..9da959a32d81154953b628df6764d01b32e5f599 100644
--- a/src/sakia/data/processors/blockchain.py
+++ b/src/sakia/data/processors/blockchain.py
@@ -327,31 +327,37 @@ class BlockchainProcessor:
                     (blockchain.median_time - blockchain.parameters.ud_reeval_time_0)
                     / blockchain.parameters.dt_reeval
                 )
+                self._logger.debug("nb_previous_reevaluations = {}".format(nb_previous_reevaluations))
 
                 last_reeval_offset = blockchain.median_time - (
                     blockchain.parameters.ud_reeval_time_0
                     + nb_previous_reevaluations * blockchain.parameters.dt_reeval
                 )
+                self._logger.debug("last_reeval_offset = {}".format(last_reeval_offset))
+
+                # todo: improve this method or use a future API method returning reevaluation block numbers...
+                previous_dt_reeval_block_index = int(((nb_previous_reevaluations-1) *
+                                              (blockchain.parameters.dt_reeval/blockchain.parameters.dt)) +
+                                             (blockchain.parameters.dt_reeval/2/blockchain.parameters.dt))
+
+                self._logger.debug(" previous previous_dt_reeval_block_index = {}".format(previous_dt_reeval_block_index))
 
-                dt_reeval_block_target = max(
-                    blockchain.current_buid.number
-                    - int(last_reeval_offset / blockchain.parameters.avg_gen_time),
-                    0,
-                )
                 try:
-                    last_ud_reeval_block_number = [
-                        b for b in blocks_with_ud if b <= dt_reeval_block_target
-                    ][-1]
+                    last_ud_reeval_block_number = blocks_with_ud[-1]
                 except IndexError:
                     last_ud_reeval_block_number = 0
 
+                self._logger.debug("last_ud_reeval_block_number = {}".format(last_ud_reeval_block_number))
+
                 if last_ud_reeval_block_number:
+                    self._logger.debug("Requesting last block with dividend reevaluation...")
                     block_with_ud = await self._bma_connector.get(
                         currency,
                         bma.blockchain.block,
                         req_args={"number": last_ud_reeval_block_number},
                     )
                     if block_with_ud:
+                        self._logger.debug("Refresh last UD reevaluation info in DB")
                         blockchain.last_members_count = block_with_ud["membersCount"]
                         blockchain.last_ud = block_with_ud["dividend"]
                         blockchain.last_ud_base = block_with_ud["unitbase"]
@@ -359,22 +365,16 @@ class BlockchainProcessor:
                         blockchain.last_mass = block_with_ud["monetaryMass"]
 
                     self._logger.debug("Requesting previous block with dividend")
-                    dt_reeval_block_target = max(
-                        dt_reeval_block_target
-                        - int(
-                            blockchain.parameters.dt_reeval
-                            / blockchain.parameters.avg_gen_time
-                        ),
-                        0,
-                    )
 
                     try:
-                        previous_ud_reeval_block_number = [
-                            b for b in blocks_with_ud if b <= dt_reeval_block_target
-                        ][-1]
+                        previous_ud_reeval_block_number = blocks_with_ud[previous_dt_reeval_block_index]
                     except IndexError:
                         previous_ud_reeval_block_number = min(blocks_with_ud)
 
+                    self._logger.debug("previous_ud_reeval_block_number = {}".format(previous_ud_reeval_block_number))
+
+                    self._logger.debug("Refresh previous UD reevaluation info in DB")
+
                     block_with_ud = await self._bma_connector.get(
                         currency,
                         bma.blockchain.block,
diff --git a/src/sakia/services/network.py b/src/sakia/services/network.py
index 174754d034fdabd2872d8bb0900b4c82e731db5c..dc7dc2a8f3d3b7ce55f13604026100b3876635f9 100644
--- a/src/sakia/services/network.py
+++ b/src/sakia/services/network.py
@@ -335,13 +335,15 @@ class NetworkService(QObject):
                 self.node_changed.emit(node)
 
         self._ws2p_heads_refreshing = False
-
+        # capture current block UID of trusted nodes
         current_buid = self._processor.current_buid(self.currency)
         self._logger.debug(
             "{0} -> {1}".format(
                 self._block_found.sha_hash[:10], current_buid.sha_hash[:10]
             )
         )
+
+        # if hash of last block in DB <> hash of current block in trusted nodes...
         if self._block_found.sha_hash != current_buid.sha_hash:
             self._logger.debug("Latest block changed : {0}".format(current_buid.number))
             self.latest_block_changed.emit(current_buid)