lol - you're right: my post-processor puts M8 (set to Output2 in Mach, which drives the air clamp) at the beginning of the code and M9 at the end.
The post also calls the M6 script when a tool change occurs. This script doesn't actually contain an M7 nor M9 command, just ActivateSignal(Output1) and DeActivateSignal(Output1)
But, I guess that DeActivateSignal command is messing with Output2 somehow?
Again, thanks for your help. I've been banging my head against this for a week!
dh