@Dennis, Why not...
primitiveEnterCriticalSectionOnBehalfOf: activeProcess
<primitive: 186>
self primitiveFailed
I had been meaning to ask what this code at the top of the primitive was for...
argumentCount > 0
ifTrue:
[criticalSection := self stackValue: 1. "rcvr"
activeProc := self stackTop]
ifFalse:
[criticalSection := self stackTop. "rcvr"
activeProc := self activeProcess].
but took a wild guess its to support onBehalfOf type calls.