i have a fairly complex application that at one point involves the interaction of 2 threads: thread1 synchronizes on object1 and wait()s. thread2 waits for some network input and then does some processing, then tries to notifyAll() on object1. however, thread1 has already continued processing. this seems to be happening when thread2 enters some code that is synchronized on object2. i haven't a clue why. it works fine with green threads. anyone else had these problems? i'm afraid i can't give out any source as it's for a commercial application, but i could give pseudocode if necessary. -- dog | cheeky as buggery