diff -ur asterisk-11.23.1-bak/channels/chan_sip.c asterisk-11.23.1/channels/chan_sip.c --- asterisk-11.23.1-bak/channels/chan_sip.c 2016-10-12 17:06:08.747140795 -0500 +++ asterisk-11.23.1/channels/chan_sip.c 2016-10-12 17:08:51.446210140 -0500 @@ -9458,6 +9458,7 @@ int len = ast_str_strlen(data); int h = 0, t = 0; int lws = 0; + int rem, nl = 0; for (; h < len;) { /* Eliminate all CRs */ @@ -9470,6 +9471,13 @@ /* Check for end-of-message */ if (h + 1 == len) break; + /* Check for start of body */ + if (nl) { + rem = len - h; + memmove(msgbuf + t, msgbuf + h, rem); + h += rem; t += rem; + break; + } /* Check for a continuation line */ if (msgbuf[h + 1] == ' ' || msgbuf[h + 1] == '\t') { /* Merge continuation line */ @@ -9479,8 +9487,10 @@ /* Propagate LF and start new line */ msgbuf[t++] = msgbuf[h++]; lws = 0; + nl = 1; continue; } + nl = 0; if (msgbuf[h] == ' ' || msgbuf[h] == '\t') { if (lws) { h++;