--- a2ps-4.13/lib/psgen.c.mb 2006-10-25 16:16:44.000000000 +0100 +++ a2ps-4.13/lib/psgen.c 2006-10-25 16:18:54.000000000 +0100 @@ -97,7 +97,8 @@ fprintf(stderr,"%d\n",job->status->face); if (encoding_char_exists (job->encoding, job->status->face, c) && ((0177 < c) || (c < 040))) { - sprintf ((char *)res, "%s\\%o", res, c); + char *p = res + strlen (res); + sprintf (p, "\\%o", c); return 1; } @@ -894,8 +895,8 @@ if (c > 127 && encoding_get_composite_flag (job->encoding) && job->status->face != Symbol) { if (mb_flag) { - nchars = ps_escape_char (job, mb_flag, buf) + - ps_escape_char (job, c, buf); + nchars = ps_escape_char (job, mb_flag, buf); + nchars += ps_escape_char (job, c, buf); job->status->wx += char_composite_WX(job, c); job->status->column += nchars; if (line_full) {