--- rivetParser.c.orig 2012-08-31 12:14:33.000000000 +0000 +++ rivetParser.c 2012-08-31 12:14:32.000000000 +0000 @@ -170,6 +170,7 @@ int startseqlen = strlen(START_TAG); int inside = 0, p = 0, check_echo = 0; int inLen = 0; + int lookback; next = Tcl_GetStringFromObj(inbuf, &inLen); @@ -245,8 +246,13 @@ { if ((++p) == endseqlen) { - Tcl_AppendToObj(outbuf, "\nputs -nonewline \"", -1); - inside = 0; + for (lookback=endseqlen; *(cur-lookback) == ' ' || *(cur-lookback) == '\t'; lookback++) ; + if (*(cur-lookback) == '\n' || *(cur-lookback) == ';') { + Tcl_AppendToObj(outbuf, "\nputs -nonewline \"", -1); + inside = 0; + } else { + Tcl_AppendToObj(outbuf, (char *)strend, p); + } p = 0; } } else {