rem: if (data != NULL && !(conn->flags & NS_CONN_SKIPBODY)) {
add: if (data != NULL) { if (conn->flags & NS_CONN_SKIPBODY) { data = NULL; len = 0; }
context: ReturnCharData(Ns_Conn *conn, int status, char *data, int len, char *type,               int sendRaw){    int          result;    Conn        *connPtr;    Tcl_DString  ds;    Tcl_Encoding enc;    Tcl_DString  type_ds;    int          new_type = NS_FALSE;    connPtr = (Conn *)conn;    /* Make sure we know what output encoding (if any) to use. */    if (!sendRaw ) {        NsComputeEncodingFromType(type, &enc, &new_type, &type_ds);        if (new_type) {            type = Tcl_DStringValue(&type_ds);        }        if (enc != NULL) {            connPtr->encoding = enc;        } else if (connPtr->encoding == NULL) {            sendRaw = NS_TRUE;        }    }    if (!sendRaw) {        Tcl_UtfToExternalDString(connPtr->encoding, data, len, &ds);	data = Tcl_DStringValue(&ds);	len = Tcl_DStringLength(&ds);    } else {	/* Send data unmodified. */	if (len == -1) {	    len = data ? strlen(data) : 0;	}    }    Ns_ConnSetRequiredHeaders(conn, type, len);    Ns_ConnQueueHeaders(conn, status);    result = NS_OK;    if (data != NULL && !(conn->flags & NS_CONN_SKIPBODY)) {        result = Ns_WriteConn(conn, data, len);    }    if (result == NS_OK) {        result = Ns_ConnClose(conn);    }    if (!sendRaw && (connPtr->encoding != NULL)) {        Tcl_DStringFree(&ds);    }    if (new_type) {        Tcl_DStringFree(&type_ds);    }    return result;}