diff --git a/dap-sdk/net/client/dap_client_http.c b/dap-sdk/net/client/dap_client_http.c
index ffc17fcb398190b30c451132721ad1068bd0ba38..264e8466e1e8708eb998c8764a198d8ebd8dc401 100644
--- a/dap-sdk/net/client/dap_client_http.c
+++ b/dap-sdk/net/client/dap_client_http.c
@@ -127,7 +127,7 @@ static bool s_timer_timeout_check(void * a_arg)
     if(dap_events_socket_check_unsafe(l_worker, l_es) ){
         if (!dap_uint128_check_equal(l_es->uuid,l_es_handler->uuid)){
             // Timer esocket wrong argument, ignore this timeout...
-            DAP_DELETE(l_es_handler);
+            DAP_DEL_Z(l_es_handler)
             return false;
         }
         dap_client_http_pvt_t * l_http_pvt = PVT(l_es);
@@ -141,10 +141,8 @@ static bool s_timer_timeout_check(void * a_arg)
         log_it(L_INFO, "Close %s sock %u type %d by timeout",
                l_es->remote_addr_str ? l_es->remote_addr_str : "", l_es->socket, l_es->type);
         dap_events_socket_remove_and_delete_unsafe(l_es, true);
-    } else {
-        log_it(L_INFO, "Socket %d type %d already disposed", l_es->socket, l_es->type);
     }
-    DAP_DELETE(l_es_handler);
+    DAP_DEL_Z(l_es_handler)
     return false;
 }
 
@@ -501,7 +499,10 @@ void* dap_client_http_request_custom(dap_worker_t * a_worker,const char *a_uplin
             log_it(L_DEBUG, "Connecting to %s:%u", a_uplink_addr, a_uplink_port);
             l_http_pvt->worker = a_worker?a_worker: dap_events_worker_get_auto();
             dap_worker_add_events_socket(l_ev_socket,l_http_pvt->worker);
-            dap_timerfd_start_on_worker(l_http_pvt->worker,s_client_timeout_ms, s_timer_timeout_check,l_ev_socket);
+            dap_events_socket_handler_t * l_ev_socket_handler = DAP_NEW_Z(dap_events_socket_handler_t);
+            l_ev_socket_handler->esocket = l_ev_socket;
+            l_ev_socket_handler->uuid = l_ev_socket->uuid;
+            dap_timerfd_start_on_worker(l_http_pvt->worker,s_client_timeout_ms, s_timer_timeout_check,l_ev_socket_handler);
             return l_http_pvt;
         } else {
             log_it(L_ERROR, "Socket %d connecting error: %d", l_ev_socket->socket, l_err2);
diff --git a/dap-sdk/net/core/dap_events_socket.c b/dap-sdk/net/core/dap_events_socket.c
index 78d5df0c342711c766b3d0f674bfa10752e434dd..6cd7a3c2147c8e73924c5636694a4ae1b90ee4e8 100644
--- a/dap-sdk/net/core/dap_events_socket.c
+++ b/dap-sdk/net/core/dap_events_socket.c
@@ -149,7 +149,7 @@ dap_events_socket_t *dap_events_socket_wrap_no_add( dap_events_t *a_events,
     l_ret->buf_out    = a_callbacks->timer_callback ? NULL : DAP_NEW_Z_SIZE(byte_t, l_ret->buf_out_size_max + 1);
     l_ret->buf_in_size = l_ret->buf_out_size = 0;
     #if defined(DAP_EVENTS_CAPS_EPOLL)
-    ret->ev_base_flags = EPOLLERR | EPOLLRDHUP | EPOLLHUP;
+    l_ret->ev_base_flags = EPOLLERR | EPOLLRDHUP | EPOLLHUP;
     #elif defined(DAP_EVENTS_CAPS_POLL)
     l_ret->poll_base_flags = POLLERR | POLLRDHUP | POLLHUP;
     #endif