diff --git a/scripts/w3mman/w3mman2html.cgi.in b/scripts/w3mman/w3mman2html.cgi.in
index f430307..2e3576c 100644
--- a/scripts/w3mman/w3mman2html.cgi.in
+++ b/scripts/w3mman/w3mman2html.cgi.in
@@ -126,12 +126,14 @@ while() {
s/\&/\&/g;
s/\\</g;
s/\>/\>/g;
+ # non ASCII UTF-8 codepoint
+ my $utf8="[\300-\337][\200-\277]|[\340-\357][\200-\277]{2}|[\360-\367][\200-\277]{3}|[\370-\373][\200-\277]{4}|[\374\375][\200-\277]{5}";
- s@([\200-\377].)(\010{1,2}\1)+@$1@g;
+ s@($utf8)(\010\1)+@$1@g;
s@(\&\w+;|.)(\010\1)+@$1@g;
- s@__\010{1,2}((\)?[\200-\377].(\)?)@$1@g;
+ s@_\010((\)?($utf8)(\)?)@$1@g;
s@_\010((\)?(\&\w+\;|.)(\)?)@$1@g;
- s@((\)?[\200-\377].(\)?)\010{1,2}__@$1@g;
+ s@((\)?($utf8)(\)?)\010_@$1@g;
s@((\)?(\&\w+\;|.)(\)?)\010_@$1@g;
s@.\010(.)@$1@g;