Yes, I'm aware of this. Is that a problem? I've updated 1.4.1 to reinitialize the GUI when a new language is selected, so that it displays the correct language immediately after selection, but it's still not written to the INI file until after a file is selected and execution begins. Given that the whole purpose of UniExtract is to extract files, I don't see why you'd have any need to run it for any other reason. If you do have some issue with this, though, please let me know. It could have been an issue if you got stuck with history=0, then you could not change the setting because of the GUICtrlSetData bug. Of course, editing the INI helped. Guess it's solved with the new version. Downloading now. This is also a known issue. There are about 130 separate language items defined in the language INI files. It would be rather time-consuming, as well as increase ongoing maintenance time, to hardcode these items. Given that use of Universal Extract already requires a group of files in a particular order (all support binaries under bin\, for example), I don't think it's unreasonable to expect that users leave the lang\ directory intact. By the way, the ??? is hardocded so that I know if a particular language item is missing. It's a debugging item for me. Users (obviously) should never see it, assuming that all translation files are correct. You're the author, do what you have to do. I just thought I'd report it. This issue showed up because I copied the binaries while trying to leave out as many .txt files as I could (I always do that with new installs. If I want to read the Readme, I'll extract it from the archive.) So you could say I UniExtracted Uniextractor. Happy holiday(s) GL