diff --git a/rsound.c b/rsound.c index e37b62594b..181f0859c8 100644 --- a/rsound.c +++ b/rsound.c @@ -75,7 +75,7 @@ static ssize_t __rsd_write(void* data, const void* buf, size_t size) { rsd_t *rsd = data; - if ( rsd_delay_ms(rsd->rd) > rsd->latency && rsd->nonblock ) + if ( (rsd_delay_ms(rsd->rd) > rsd->latency || rsd_get_avail(rsd->rd) < size) && rsd->nonblock ) return 0; if ( size == 0 )