Solved by Styken, thanks dude! the winqreadtextspace() function wants CTRL/ALT events, but also should accept special characters that are sometimes behind an ALT on certain keyboards (like [ ] in sweden). In the old code all ALT events caused ascii to set on zero. Now it checks first for ispunct() chars.