What makes it even more strange, is that according to the manual, macros should not even be available during the include portion...because of it occuring in pre-execution. So I don't know how it could be changing the value of the macro. @ScriptDir isn't a cached value is it that is still from the previously run script, until execution starts? I wouldn't think so, but just a thought.

Also, I ran Glenn's test script above and my macros remained pointing to the script location. Never changed to the include directory.

 Quote:
Note that INCLUDE statements are processed during the pre-processing phase of KiXtart at which point macros, variables and functions are not yet available. As such, INCLUDE only supports a single, flat string and you can not use macros, variables or functions in it.