I sited this problem a while ago on my own applets, forgot to mention it.
If on mac osx, a user already has a copy of the cache, and accepts both certificate popups (as on Mac there will be 2), but doesnt choose to "trust" always, (as I always do to test in case I forgot to sign jars).
then the next time the applet loads up with plugin2 it will give the certificate pop 1, check cache then instantly try show popup 2, but for some reason will crash.
I managed to fix the problem in my own applets, by getting a time stamp at the start of the "run()" method. and just before "switchApplet()" is called. it compares the current time to last time stamp + a minimum delay (about a second).