Hmm. If I wrote this: setenvif A .* T setenvif B .* !T setenvif A .* T I would expect T to be set whenever A appears, regardless of whether B appears. But that's not what the code does, because it will merge the two cases for A. Seems kinda rude. Dean