diff --git a/dap_client_remote.c b/dap_client_remote.c
index c7a711250d475d1007c13b7c279b645a61ad969a..2c0172df82f85a6b2112e8afa3cc4366af0f04de 100644
--- a/dap_client_remote.c
+++ b/dap_client_remote.c
@@ -184,10 +184,13 @@ void dap_client_remote_ready_to_write(dap_client_remote_t * sc,bool is_ready)
  * @return Number of bytes that were placed into the buffer
  */
 size_t dap_client_remote_write(dap_client_remote_t *sc, const void * data, size_t data_size)
-{
-     data_size = ((sc->buf_out_size+data_size)<(sizeof(sc->buf_out)))?data_size:(sizeof(sc->buf_out)-sc->buf_out_size );
+{     
+     if(sc->buf_out_size + data_size > sizeof(sc->buf_out) )  {
+         log_it(L_WARNING, "Client buffer overflow. Packet loosed");
+         return 0;
+     }
      memcpy(sc->buf_out+sc->buf_out_size,data,data_size);
-     sc->buf_out_size+=data_size;
+     sc->buf_out_size += data_size;
      return data_size;
 }