diff --git a/CMakeLists.txt b/CMakeLists.txt
index 59c5885ae7f25fa984426405d1fdd71c4bda92c3..9fd7506ccae17033d0a5c7b5cacc1487dd687955 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,7 @@ project(cellframe-sdk C)
 cmake_minimum_required(VERSION 2.8)
 
 set(CMAKE_C_STANDARD 11)
-set(CELLFRAME_SDK_NATIVE_VERSION "2.5-16")
+set(CELLFRAME_SDK_NATIVE_VERSION "2.5-17")
 add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"")
 
 set(DAPSDK_MODULES "")
diff --git a/modules/consensus/dag-pos/dap_chain_cs_dag_pos.c b/modules/consensus/dag-pos/dap_chain_cs_dag_pos.c
index 597ea51c63afaf5db0f92c5567c1fc847866389c..cb37b8d615f7b32d1c94b6e4ca17a8f634898354 100644
--- a/modules/consensus/dag-pos/dap_chain_cs_dag_pos.c
+++ b/modules/consensus/dag-pos/dap_chain_cs_dag_pos.c
@@ -231,9 +231,9 @@ static int s_callback_event_verify(dap_chain_cs_dag_t * a_dag, dap_chain_cs_dag_
         dap_chain_addr_t l_addr = { 0 };
 
         for ( size_t l_sig_pos=0; l_sig_pos < a_dag_event->header.signs_count; l_sig_pos++ ){
-            dap_sign_t * l_sign = dap_chain_cs_dag_event_get_sign(a_dag_event, 0,a_dag_event_size);
+            dap_sign_t * l_sign = dap_chain_cs_dag_event_get_sign(a_dag_event, a_dag_event_size,l_sig_pos);
             if ( l_sign == NULL){
-                log_it(L_WARNING, "Event is NOT signed with anything");
+                log_it(L_WARNING, "Event is NOT signed with anything: sig pos %zd, event size %zd", a_dag_event_size);
                 return -4;
             }
 
diff --git a/modules/type/dag/dap_chain_cs_dag.c b/modules/type/dag/dap_chain_cs_dag.c
index 44c31b78720f26857924d5786b85fc88052b4f0f..6385aacf84141e8111d2e39249a4a947de32bbd8 100644
--- a/modules/type/dag/dap_chain_cs_dag.c
+++ b/modules/type/dag/dap_chain_cs_dag.c
@@ -482,7 +482,6 @@ static size_t s_chain_callback_datums_pool_proc(dap_chain_t * a_chain, dap_chain
             if(l_dag->callback_cs_event_create)
                 l_event = l_dag->callback_cs_event_create(l_dag,l_datum,l_hashes,l_hashes_linked,&l_event_size);
             if ( l_event&&l_event_size){ // Event is created
-
                 if (l_dag->is_add_directy) {
                     if (s_chain_callback_atom_add(a_chain, l_event, l_event_size) == ATOM_ACCEPT) {
                         // add events to file
@@ -593,24 +592,29 @@ static dap_chain_atom_verify_res_t s_chain_callback_atom_verify(dap_chain_t * a_
     }
     // genesis or seed mode
     if (l_event->header.hash_count == 0){
-      if(s_seed_mode && !PVT(l_dag)->events)
-        return ATOM_ACCEPT;
-
-      if (l_dag->is_static_genesis_event ){
-        dap_chain_hash_fast_t l_event_hash;
-        dap_chain_cs_dag_event_calc_hash(l_event,a_atom_size, &l_event_hash);
-        if ( memcmp( &l_event_hash, &l_dag->static_genesis_event_hash, sizeof(l_event_hash) ) != 0 ){
-          char * l_event_hash_str = dap_chain_hash_fast_to_str_new(&l_event_hash);
-          char * l_genesis_event_hash_str = dap_chain_hash_fast_to_str_new(&l_dag->static_genesis_event_hash);
-
-          log_it(L_WARNING, "Wrong genesis block %s (staticly predefined %s)",l_event_hash_str, l_genesis_event_hash_str);
-          DAP_DELETE(l_event_hash_str);
-          DAP_DELETE(l_genesis_event_hash_str);
-          return ATOM_REJECT;
-        }else{
-          return ATOM_ACCEPT;
+        if(s_seed_mode && !PVT(l_dag)->events){
+            log_it(L_NOTICE,"Accepting genesis event");
+            return ATOM_ACCEPT;
+        }else if(s_seed_mode){
+            log_it(L_WARNING,"Cant accept genesis event: already present data in DAG, ->events is not NULL");
+            return  ATOM_REJECT;
+        }
+
+        if (l_dag->is_static_genesis_event ){
+            dap_chain_hash_fast_t l_event_hash;
+            dap_chain_cs_dag_event_calc_hash(l_event,a_atom_size, &l_event_hash);
+            if ( memcmp( &l_event_hash, &l_dag->static_genesis_event_hash, sizeof(l_event_hash) ) != 0 ){
+                char * l_event_hash_str = dap_chain_hash_fast_to_str_new(&l_event_hash);
+                char * l_genesis_event_hash_str = dap_chain_hash_fast_to_str_new(&l_dag->static_genesis_event_hash);
+
+                log_it(L_WARNING, "Wrong genesis block %s (staticly predefined %s)",l_event_hash_str, l_genesis_event_hash_str);
+                DAP_DELETE(l_event_hash_str);
+                DAP_DELETE(l_genesis_event_hash_str);
+                return ATOM_REJECT;
+            }else{
+                return ATOM_ACCEPT;
+            }
         }
-      }
     }
 
     //chain coherence
diff --git a/modules/type/dag/dap_chain_cs_dag_event.c b/modules/type/dag/dap_chain_cs_dag_event.c
index a9d1d755b57b6591a1c395fe59d05aeebc0c3e34..3b39ba72c0c4cff5530c11a0b2f8e1c3e1325bb3 100644
--- a/modules/type/dag/dap_chain_cs_dag_event.c
+++ b/modules/type/dag/dap_chain_cs_dag_event.c
@@ -77,9 +77,10 @@ dap_chain_cs_dag_event_t * dap_chain_cs_dag_event_new(dap_chain_id_t a_chain_id,
             size_t l_sign_size = dap_sign_get_size(l_sign);
             l_event_new = (dap_chain_cs_dag_event_t* )DAP_REALLOC(l_event_new,l_event_size+l_sign_size );
             memcpy(l_event_new->hashes_n_datum_n_signs + l_hashes_size + l_datum_size, l_sign, l_sign_size);
-            *a_event_size += l_sign_size;
             l_event_size += l_sign_size;
+            *a_event_size = l_event_size;
             l_event_new->header.signs_count++;
+            log_it(L_INFO,"Created event size %zd, signed with sign size %zd", l_event_size, l_sign_size);
             DAP_DELETE(l_sign);
         }else {
             log_it(L_ERROR,"Can't sign dag event!");