diff --git a/CMakeLists.txt b/CMakeLists.txt
index 135a9c3e3239a51214f8528aa75c37dc4465c528..e9b812436517f59b1daa2b0c29170e65f7e725b5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,7 @@ project(cellframe-sdk C)
 cmake_minimum_required(VERSION 3.0)
 
 set(CMAKE_C_STANDARD 11)
-set(CELLFRAME_SDK_NATIVE_VERSION "3.0-4")
+set(CELLFRAME_SDK_NATIVE_VERSION "3.0-5")
 add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"")
 set(DAPSDK_MODULES "")
 message("Cellframe modules: ${CELLFRAME_MODULES}")
diff --git a/modules/global-db/dap_chain_global_db_driver_sqlite.c b/modules/global-db/dap_chain_global_db_driver_sqlite.c
index 9b90abff137a177a9727ab6da13d1a65a2bdc5c9..07b4488dabf2ce836c0fa9b66b47ab56c3d121f1 100644
--- a/modules/global-db/dap_chain_global_db_driver_sqlite.c
+++ b/modules/global-db/dap_chain_global_db_driver_sqlite.c
@@ -564,6 +564,7 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj)
         return -1;
     char *l_query = NULL;
     char *l_error_message = NULL;
+    char *l_table_name = dap_db_driver_sqlite_make_table_name(a_store_obj->group);
     if(a_store_obj->type == 'a') {
         if(!a_store_obj->key || !a_store_obj->value || !a_store_obj->value_len)
             return -1;
@@ -573,10 +574,8 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj)
         char *l_blob_hash = "";//dap_db_driver_get_string_from_blob((uint8_t*) &l_hash, sizeof(dap_chain_hash_fast_t));
         char *l_blob_value = dap_db_driver_get_string_from_blob(a_store_obj->value, (int)a_store_obj->value_len);
         //add one record
-        char *table_name = dap_db_driver_sqlite_make_table_name(a_store_obj->group);
         l_query = sqlite3_mprintf("insert into '%s' values(NULL, '%s', x'%s', '%lld', x'%s')",
-                table_name, a_store_obj->key, l_blob_hash, a_store_obj->timestamp, l_blob_value);
-        DAP_DELETE(table_name);
+                                   l_table_name, a_store_obj->key, l_blob_hash, a_store_obj->timestamp, l_blob_value);
         //dap_db_driver_sqlite_free(l_blob_hash);
         dap_db_driver_sqlite_free(l_blob_value);
     }
@@ -584,12 +583,10 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj)
         //delete one record
         if(a_store_obj->key)
             l_query = sqlite3_mprintf("delete from '%s' where key = '%s'",
-                    a_store_obj->group, a_store_obj->key);
+                                      l_table_name, a_store_obj->key);
         // remove all group
-        else{
-            char * l_table_name = dap_db_driver_sqlite_make_table_name(a_store_obj->group);
+        else {
             l_query = sqlite3_mprintf("drop table if exists '%s'", l_table_name);
-            DAP_DELETE(l_table_name);
         }
     }
     else {
@@ -608,9 +605,7 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj)
         dap_db_driver_sqlite_free(l_error_message);
         l_error_message = NULL;
         // create table
-        char *table_name = dap_db_driver_sqlite_make_table_name(a_store_obj->group);
-        dap_db_driver_sqlite_create_group_table(table_name);
-        DAP_DELETE(table_name);
+        dap_db_driver_sqlite_create_group_table(l_table_name);
         // repeat request
         l_ret = dap_db_driver_sqlite_exec(s_db, l_query, &l_error_message);
 
@@ -619,11 +614,9 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj)
     if(l_ret == SQLITE_CONSTRAINT) {
         dap_db_driver_sqlite_free(l_error_message);
         l_error_message = NULL;
-        char *table_name = dap_db_driver_sqlite_make_table_name(a_store_obj->group);
         //delete exist record
-        char *l_query_del = sqlite3_mprintf("delete from '%s' where key = '%s'", table_name, a_store_obj->key);
+        char *l_query_del = sqlite3_mprintf("delete from '%s' where key = '%s'", l_table_name, a_store_obj->key);
         l_ret = dap_db_driver_sqlite_exec(s_db, l_query_del, &l_error_message);
-        DAP_DELETE(table_name);
         dap_db_driver_sqlite_free(l_query_del);
         if(l_ret != SQLITE_OK) {
             log_it(L_INFO, "Entry with the same key is already present and can't delete, %s", l_error_message);
@@ -641,6 +634,7 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj)
         l_ret = -1;
     }
     dap_db_driver_sqlite_free(l_query);
+    DAP_DELETE(l_table_name);
     return l_ret;
 }