diff --git a/src/document/html/renderer.c b/src/document/html/renderer.c
index dd8518f6..3f54c709 100644
--- a/src/document/html/renderer.c
+++ b/src/document/html/renderer.c
@@ -563,7 +563,12 @@ good_char:
data = utf8_to_unicode(&chars, end);
if (data == UCS_SOFT_HYPHEN)
continue;
+
+ if (data == UCS_NO_BREAK_SPACE
+ && html_context->options->wrap_nbsp)
+ data = UCS_SPACE;
part->spaces[x] = (data == UCS_SPACE);
+
part->char_width[x] = unicode_to_cell(data);
if (part->char_width[x] == 2) {
x++;
@@ -579,7 +584,12 @@ good_char:
len = x - x2;
} else { /* not UTF-8 */
for (; charslen > 0; charslen--, x++, chars++) {
- part->spaces[x] = (*chars == ' ');
+ unsigned char c = *chars;
+
+ if (c == NBSP_CHAR
+ && html_context->options->wrap_nbsp)
+ c = ' ';
+ part->spaces[x] = (c == ' ');
part->char_width[x] = 1;
}
}