I just stepped into a problem which I want to share: I read a file with utf-8 characters, it contains also empty lines. When clsUniFile has read the empty line ".ReadUTF8Line(sRet)", the passed variable sRet still contains the previous value. When reading an empty line in an ANSI file with .ReadAnsiLine, the sRet is empty instead (as expected). So I suggest always to reset sRet = "" before .ReadUTF8Line(sRet)