Crista proposes the following approach to synchronization in Demeter/Java: We want to synchronize on entire traversals, pieces of a traversal and before/after/around methods. The strategy is to use selfex and mutex but to allow more complex objects than only qualified method names. Examples: (t is a traversal) selfex {C.t}: no other thread can start the same traversal. mutex{A.t1(X,Y), A.t2(X,Y), A.t3(X,Y)) the traversals t1, t2 and t3 are mutually exclusive at classes X and Y only. mutex{A.t1(strategy s1), A.t2(strategy s1)} the traversals t1 and t2 are mutually exclusive at classes defined by strategy s1. How does this look? -- Karl