diff --git a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
index 6684f8a0f9181ec4d3ede58d50f9782a8e25ac9f..9f7a128ec97a985b8c886dc05e5127382cd225e5 100644
--- a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
+++ b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
@@ -512,23 +512,39 @@ static void s_grace_period_start(dap_chain_net_srv_grace_t *a_grace)
 
         dap_chain_net_srv_price_t *l_price_tmp;
         DL_FOREACH(a_grace->usage->service->pricelist, l_price_tmp) {
-            if (l_price_tmp && l_price_tmp->net->pub.id.uint64  == a_grace->usage->net->pub.id.uint64
-                && dap_strcmp(l_price_tmp->token, l_ticker)     == 0
-                && l_price_tmp->units_uid.enm                   == l_tx_out_cond->subtype.srv_pay.unit.enm)
-            {
-                uint256_t l_unit_price = {};
-                if (l_price_tmp->units != 0){
-                    DIV_256(l_price_tmp->value_datoshi, GET_256_FROM_64(l_price_tmp->units), &l_unit_price);
-                } else {
-                    break;
-                }
+            if (!l_price_tmp){
+                continue;
+            }
 
-                if(!compare256(uint256_0, l_tx_out_cond->subtype.srv_pay.unit_price_max_datoshi) ||
-                    compare256(l_unit_price, l_tx_out_cond->subtype.srv_pay.unit_price_max_datoshi) <= 0){
-                    l_price = l_price_tmp;
-                    break;
-                }
+            if (l_price_tmp->net->pub.id.uint64  != a_grace->usage->net->pub.id.uint64){
+                log_it( L_WARNING, "Pricelist is not for net %s.", a_grace->usage->net->pub.id.uint64);
+                continue;
+            }
+
+            if (dap_strcmp(l_price_tmp->token, l_ticker) != 0){
+                log_it( L_WARNING, "Token ticker in the pricelist and tx do not match");
+                continue;
+            }
 
+            if (l_price_tmp->units_uid.enm == l_tx_out_cond->subtype.srv_pay.unit.enm){
+                log_it( L_WARNING, "Unit ID in the pricelist and tx do not match");
+                continue;
+            }
+
+            uint256_t l_unit_price = {};
+            if (l_price_tmp->units != 0){
+                DIV_256(l_price_tmp->value_datoshi, GET_256_FROM_64(l_price_tmp->units), &l_unit_price);
+            } else {
+                log_it( L_WARNING, "Units in pricelist is zero. ");
+                continue;
+            }
+
+            if(!compare256(uint256_0, l_tx_out_cond->subtype.srv_pay.unit_price_max_datoshi) ||
+                compare256(l_unit_price, l_tx_out_cond->subtype.srv_pay.unit_price_max_datoshi) <= 0){
+                l_price = l_price_tmp;
+                break;
+            } else {
+                log_it( L_WARNING, "Unit price in pricelist is greater than max allowable.");
             }
         }
         if ( !l_price ) {
@@ -706,22 +722,39 @@ static bool s_grace_period_finish(usages_in_grace_t *a_grace_item)
 
         dap_chain_net_srv_price_t *l_price_tmp;
         DL_FOREACH(l_grace->usage->service->pricelist, l_price_tmp) {
-            if (l_price_tmp && l_price_tmp->net->pub.id.uint64                 == l_grace->usage->net->pub.id.uint64
-                && dap_strcmp(l_price_tmp->token, l_ticker)     == 0
-                && l_price_tmp->units_uid.enm                   == l_tx_out_cond->subtype.srv_pay.unit.enm)
-            {
-                uint256_t l_unit_price = {};
-                if (l_price_tmp->units != 0){
-                    DIV_256(l_price_tmp->value_datoshi, GET_256_FROM_64(l_price_tmp->units), &l_unit_price);
-                } else {
-                    break;
-                }
+            if (!l_price_tmp){
+                continue;
+            }
 
-                if(!compare256(uint256_0, l_tx_out_cond->subtype.srv_pay.unit_price_max_datoshi) ||
-                    compare256(l_unit_price, l_tx_out_cond->subtype.srv_pay.unit_price_max_datoshi) <= 0){
-                    l_price = l_price_tmp;
-                    break;
-                }
+            if (l_price_tmp->net->pub.id.uint64  != l_grace->usage->net->pub.id.uint64){
+                log_it( L_WARNING, "Pricelist is not for net %s.", l_grace->usage->net->pub.id.uint64);
+                continue;
+            }
+
+            if (dap_strcmp(l_price_tmp->token, l_ticker) != 0){
+                log_it( L_WARNING, "Token ticker in the pricelist and tx do not match");
+                continue;
+            }
+
+            if (l_price_tmp->units_uid.enm == l_tx_out_cond->subtype.srv_pay.unit.enm){
+                log_it( L_WARNING, "Unit ID in the pricelist and tx do not match");
+                continue;
+            }
+
+            uint256_t l_unit_price = {};
+            if (l_price_tmp->units != 0){
+                DIV_256(l_price_tmp->value_datoshi, GET_256_FROM_64(l_price_tmp->units), &l_unit_price);
+            } else {
+                log_it( L_WARNING, "Units in pricelist is zero. ");
+                continue;
+            }
+
+            if(!compare256(uint256_0, l_tx_out_cond->subtype.srv_pay.unit_price_max_datoshi) ||
+                compare256(l_unit_price, l_tx_out_cond->subtype.srv_pay.unit_price_max_datoshi) <= 0){
+                l_price = l_price_tmp;
+                break;
+            } else {
+                log_it( L_WARNING, "Unit price in pricelist is greater than max allowable.");
             }
         }
         if ( !l_price ) {
diff --git a/modules/service/vpn/dap_chain_net_srv_vpn.c b/modules/service/vpn/dap_chain_net_srv_vpn.c
index a8a4e3f9f5cb1eea12e047b6adaabc97d8c50b8b..02fdbfb3ef20f273a3b7efbb295c0ce259e89171 100644
--- a/modules/service/vpn/dap_chain_net_srv_vpn.c
+++ b/modules/service/vpn/dap_chain_net_srv_vpn.c
@@ -1350,7 +1350,7 @@ static void s_update_limits(dap_stream_ch_t * a_ch ,
                 } break;
                 case SERV_UNIT_SEC:{
                     a_srv_session->limits_ts += (time_t)a_usage->receipt->receipt_info.units;
-                    log_it(L_INFO,"%"DAP_UINT64_FORMAT_U" seconds more for VPN usage", a_srv_session->limits_ts);
+                    log_it(L_INFO,"%"DAP_UINT64_FORMAT_U" seconds more for VPN usage", a_usage->receipt->receipt_info.units);
                 } break;
                 default: {
                     log_it(L_WARNING, "VPN doesnt accept serv unit type 0x%08X for limits_ts", a_usage->receipt->receipt_info.units_type.uint32 );