>We need to have a multi-use com server but need to place a critical section in one area of the code which we do not want the multiple instances to trample on each other.
There's a new undocumented (though Calvin demoed it last year, so I guess that means I can talk about it :-) SYS function in SP3 that deals with this, SYS(2336). IIRC, the parameters are 1 to start a CS, and 0 to end it.
Mike Stewart