Maybe it's time to "split" the compiling?
I.e. instead of ASCII and Unicode choice, and XP Theme or no XP Theme, why not change all that so there is:
[ ] Windows 4.x (Win9x/NT4) (ASCII and no XP Theme, no Vista usermode)
[ ] Windows 5.x+ (W2K,XP,Vista,Win7) (Unicode and XP Theme on, Vista+ usermode choices available)
I'm only guessing here, but those who make Ascii apps usually wish to target Windows 4.x (Win9x and old NT),
and those who make Unicode usually wish to target Windows 5.0 or later (as unicode doesn't work on Win9x anyway).
And since Windows4.x apps still work on Windows5.x I don't think it's that much of an issue to "split" old and new this way.
I myself have stopped supporting anything older than Windows 5.0 (Windows 2000) so I only do Unicode apps with XP Theme now and also use Vista usermode settings.
And slowly starting to move the older Windows 4.x stuff into Legacy status might help future development.
(a lot of the old APIs are deprecated on Windows 5.0 and later, and it would allow the compiler to use "new" Windows 5.0+ API's where appropriate)
It kinda would make sense too as PureBasic 4.xx could then eventually become the "Legacy" (ASCII, Win9x/old NT) branch and PureBasic 5.xx supporting only Windows 5.0 and later (Unicode, XP Theme, +vista usermode support, and taking advantage of Windows 5.0+ features where available).
I'd be happy to "re-purchase" PureBasic for that indeed
But for now, consolidating ASCII and XP Theme etc. into a Legacy and Modern toggle should avoid most of the issues currently I think.
It certainly seems like people forget that XP Theme and Unicode is only supported on Windows 5.0 or later, and that a manifest can cause issues with Win9x.
Sorry I can't recall what exactly, but there is a tweak needed to the manifest. (just like there is a tweak needed to the Vista user mode manifest to avoid it crashing on XP SP2, ugh).