diff -r f3cddd9ce5f4 -r aeaef6fe53b7 namegen.c --- a/namegen.c Thu Nov 16 20:57:23 2006 +0000 +++ b/namegen.c Thu Nov 16 22:05:33 2006 +0000 @@ -480,13 +480,15 @@ strecat(buf, name_czech_adj[prefix].name, last); endpos = strlen(buf) - 1; + /* Find the first character in a UTF-8 sequence */ + while (GB(buf[endpos], 6, 2) == 2) endpos--; if (gender == CZG_SMASC && pattern == CZP_PRIVL) { /* -ovX -> -uv */ buf[endpos - 2] = 'u'; assert(buf[endpos - 1] == 'v'); buf[endpos] = '\0'; } else { - buf[endpos] = name_czech_patmod[gender][pattern]; + strecpy(buf + endpos, name_czech_patmod[gender][pattern], last); } strecat(buf, " ", last);