diff --git a/dap_client.c b/dap_client.c
index 354dbae89932b495a97dd408c02d2ed3daa094b0..8d96a9f9c00695a6cdda50cca63f3551d87ce045 100755
--- a/dap_client.c
+++ b/dap_client.c
@@ -289,22 +289,30 @@ void dap_client_request(dap_client_t * a_client, const char * a_full_path, void
  * @param a_client
  * @return
  */
-int dap_client_disconnect(dap_client_t * a_client)
+int dap_client_disconnect( dap_client_t *a_client )
 {
-    dap_client_pvt_t * l_client_internal = (a_client) ? DAP_CLIENT_PVT(a_client) : NULL;
-    if(l_client_internal && l_client_internal->stream_socket){
-        if (l_client_internal->stream_socket ){
-            close (l_client_internal->stream_socket);
-            l_client_internal->stream_socket = 0;
-        }
-        if(l_client_internal->stream_es) {
-            dap_events_socket_delete(l_client_internal->stream_es, true);
-            l_client_internal->stream_es = NULL;
-        }
+    dap_client_pvt_t *l_client_internal = (a_client) ? DAP_CLIENT_PVT(a_client) : NULL;
+
+    if ( l_client_internal && l_client_internal->stream_socket ) {
+
+//        if ( l_client_internal->stream_es ) {
+//            dap_events_socket_remove_and_delete( l_client_internal->stream_es, true );
+//            l_client_internal->stream_es = NULL;
+//        }
+
+        l_client_internal->stream_es->signal_close = true;
+
+//        if (l_client_internal->stream_socket ) {
+//            close (l_client_internal->stream_socket);
+        l_client_internal->stream_socket = 0;
+//        }
 
         return 1;
     }
     //l_client_internal->stream_socket = 0;
+
+    log_it(L_DEBUG, "dap_client_disconnect( ) done" );
+
     return -1;
 }