Hello Guilers! The attached patch makes `compile' and friends use fresh module rather than the current module as the default compile-time environment. The intent is to make sure macro definitions and side-effects made at expansion time do not (to some extents) clutter the current module's name space. However, assignments to global variables made at expansion time do have a visible effect on the running system. This is because the compiler and "compilee" share the whole module hierarchy, down to the pre-module obarray. Comments? Thanks, Ludo'.