--- a/libpurple/circbuffer.c Tue Oct 21 16:26:31 2008 +0000 +++ b/libpurple/circbuffer.c Wed Oct 22 03:49:14 2008 +0000 @@ -109,13 +109,12 @@ else len_stored = len; - memcpy(buf->inptr, src, len_stored); + if (len_stored > 0) + memcpy(buf->inptr, src, len_stored); if (len_stored < len) { memcpy(buf->buffer, (char*)src + len_stored, len - len_stored); buf->inptr = buf->buffer + (len - len_stored); - } else if ((buf->buffer - buf->inptr) == len_stored) { - buf->inptr = buf->buffer; } else { buf->inptr += len_stored; }