diff -r 01e07d16cc75 -r cb7d22017162 libpurple/protocols/msn/cmdproc.c --- a/libpurple/protocols/msn/cmdproc.c Tue May 20 19:49:26 2008 +0000 +++ b/libpurple/protocols/msn/cmdproc.c Tue May 20 20:59:21 2008 +0000 @@ -132,6 +132,14 @@ data = g_realloc(data, len + trans->payload_len); memcpy(data + len, trans->payload, trans->payload_len); len += trans->payload_len; + + /* + * We're done with trans->payload. Free it so that the memory + * doesn't sit around in cmdproc->history. + */ + g_free(trans->payload); + trans->payload = NULL; + trans->payload_len = 0; } msn_servconn_write(servconn, data, len);