diff --git a/modules/common/include/dap_chain_common.h b/modules/common/include/dap_chain_common.h
index 0e6e94f069fe3e6ff301dbbcfaf9b6a84ef715c9..109d128d70d23b859dfcb12825727da124bc410c 100644
--- a/modules/common/include/dap_chain_common.h
+++ b/modules/common/include/dap_chain_common.h
@@ -249,7 +249,7 @@ DAP_STATIC_INLINE uint256_t dap_chain_uint256_from_uint128(uint128_t a_from)
 }
 
 #define dap_chain_balance_print dap_uint256_uninteger_to_char
-#define dap_chain_balance_scan dap_uint256_scan_uninteger
+#define dap_chain_balance_scan(a_balance) (strchr(a_balance, '.') && !strchr(a_balance, '+')) ? dap_uint256_scan_decimal(a_balance) : dap_uint256_scan_uninteger(a_balance)
 #define dap_chain_balance_to_coins dap_uint256_decimal_to_char
 #define dap_chain_coins_to_balance dap_uint256_scan_decimal
 #define dap_chain_uint256_to dap_uint256_to_uint64
diff --git a/modules/wallet/dap_chain_wallet.c b/modules/wallet/dap_chain_wallet.c
index 124be73e09d22c53c2c426f4c7b2583e5f7f61b0..b504530cf66f86b99cc023134ab31ea61689e784 100644
--- a/modules/wallet/dap_chain_wallet.c
+++ b/modules/wallet/dap_chain_wallet.c
@@ -59,6 +59,7 @@
 #include "dap_enc_key.h"
 #include "crc32c_adler.h"
 #include "dap_chain_ledger.h"
+#include "dap_strfuncs.h"
 
 //#define __USE_GNU
 
@@ -953,7 +954,7 @@ ssize_t     l_rc, l_pass_len;
 
     if ( (l_cp = strstr(a_wallet_name, s_wallet_ext)) )
         strncpy(l_wallet_name, a_wallet_name, l_cp - a_wallet_name);
-    else strcpy(l_wallet_name, a_wallet_name);
+    else strncpy(l_wallet_name, a_wallet_name, sizeof(l_wallet_name)-1);
 
     snprintf(l_file_name, sizeof(l_file_name) - 1, "%s/%s%s", a_wallets_path, l_wallet_name, s_wallet_ext);