Index: uformat.c =================================================================== --- uformat.c.orig 2008-10-28 05:13:56.000000000 +0100 +++ uformat.c 2009-10-26 18:13:08.726241696 +0100 @@ -361,9 +361,10 @@ void wrapword(BW *bw, P *p, long int ind if (!bw->o.autoindent) { /* Don't indent second line of single-line paragraphs if autoindent is off */ int x = zlen(indents); + int start = x; while (x && (indents[x - 1] == ' ' || indents[x - 1] == '\t')) indents[--x] = 0; - if (x) { + if (x < start) { indents[x++] = ' '; indents[x] = 0; } @@ -430,7 +431,7 @@ void wrapword(BW *bw, P *p, long int ind if (!pisbol(p) && piscol(p) > indent) { /* Move q to two (or one if 'french' is set) spaces after end of previous word */ - q = pdup(p, USTR "wrapword"); + q = pdup(p, USTR "wrapword;"); while (!pisbol(q)) if (!joe_isblank(p->b->o.charmap, (c = prgetc(q)))) { pgetc(q); @@ -564,10 +565,12 @@ int uformat(BW *bw) if (!bw->o.autoindent) { /* Don't indent second line of single-line paragraphs if autoindent is off */ int x = zlen(indents); + int start = x; while (x && (indents[x - 1] == ' ' || indents[x - 1] == '\t')) indents[--x] = 0; if (x) { - indents[x++] = ' '; + if(x < start) + indents[x++] = ' '; indents[x] = 0; } indent = txtwidth1(bw->o.charmap, bw->o.tab, indents, x);