diff --git a/modules/chain/dap_chain_cell.c b/modules/chain/dap_chain_cell.c
index 3c14f7e50ab4fe9ae03eb8730485511c17ab642b..874a84e6db7c53586fb8ca8f3b11359e21a16022 100644
--- a/modules/chain/dap_chain_cell.c
+++ b/modules/chain/dap_chain_cell.c
@@ -129,7 +129,7 @@ dap_chain_cell_t * dap_chain_cell_create_fill(dap_chain_t * a_chain, dap_chain_c
             pthread_rwlock_unlock(&a_chain->cell_rwlock);
             return NULL;
         }
-        if ( MAP_FAILED == (l_map = mmap(NULL, l_size = dap_page_roundup(DAP_MAPPED_VOLUME_LIMIT), PROT_READ|PROT_WRITE, MAP_PRIVATE, fileno(l_file), 0)) ) {
+        if ( a_chain->is_mapped && MAP_FAILED == (l_map = mmap(NULL, l_size = dap_page_roundup(DAP_MAPPED_VOLUME_LIMIT), PROT_READ|PROT_WRITE, MAP_PRIVATE, fileno(l_file), 0)) ) {
             log_it(L_ERROR, "Chain cell \"%s\" 0x%016"DAP_UINT64_FORMAT_X" cannot be mapped, error %d",
                             file_storage_path, a_cell_id.uint64, errno);
             fclose(l_file);