So it's winemono-support.msi that fails when the installer path includes non-ascii characters. The problem is that the Cabinet API doesn't support wide character strings. We can pass a UTF-8 string instead like you do since the cabinet filename is handled by a callback that we also implement. We can't change strdupAtoW() and strdupWtoA() to assume UTF-8 strings however, because these helpers are used in functions that expect ANSI strings. It would need new helpers like strdupUtoW() and strdupWtoU().