diff --git a/CMakeLists.txt b/CMakeLists.txt
index 721a4527a83f792804f0e9ad330a90a6332b5c00..202ffb262f9dad643021e597a77a7da642b53a84 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.6-42")
+set(CELLFRAME_SDK_NATIVE_VERSION "2.6-43")
 add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"")
 
 set(DAPSDK_MODULES "")
diff --git a/dap-sdk/net/core/dap_worker.c b/dap-sdk/net/core/dap_worker.c
index 6f18f4ce05010579a162620943e19b5d7298f2d4..5bf2b8da46acd54fba51b540343dd314838ef428 100644
--- a/dap-sdk/net/core/dap_worker.c
+++ b/dap-sdk/net/core/dap_worker.c
@@ -185,7 +185,22 @@ void *dap_worker_thread(void *arg)
 
             int l_sock_err = 0, l_sock_err_size = sizeof(l_sock_err);
             //connection already closed (EPOLLHUP - shutdown has been made in both directions)
-            if( l_flag_hup || l_flag_rdhup) {
+            if (l_flag_rdhup){
+                switch (l_cur->type ){
+                    case DESCRIPTOR_TYPE_SOCKET_UDP:
+                    case DESCRIPTOR_TYPE_SOCKET:
+                            dap_events_socket_set_readable_unsafe(l_cur, false);
+                            dap_events_socket_set_writable_unsafe(l_cur, false);
+                            l_cur->buf_out_size = 0;
+                            l_cur->flags |= DAP_SOCK_SIGNAL_CLOSE;
+                            l_flag_error = l_flag_write = false;
+                    break;
+                    default:{}
+                }
+                if(s_debug_reactor)
+                    log_it(L_INFO,"RDHUP event on esocket %p (%d) type %d", l_cur, l_cur->socket, l_cur->type );
+            }
+            if( l_flag_hup ) {
                 switch (l_cur->type ){
                 case DESCRIPTOR_TYPE_SOCKET_UDP:
                     case DESCRIPTOR_TYPE_SOCKET: