PlayerLoop called recursively!

We are moving our 2.6 project to Unity 3.0 and are encountering a rather difficult bug that causes the web player to throw a unity .cpp crash exception.

Our web player log's last log entry from Unity is PlayerLoop called recursively!

The call happens in a method call to a third party library that's doing some deserialization, and we're trying to understand why this doesn't work under Unity 3.0 but was working well under Unity 2.6.

Perhaps there is some general condition in which the Unity Engine will throw the "PlayerLoop called recursively!" exception? Our external scripts aren't interacting with the Player at all. We've been able to reproduce the error with even the most simple case, but nothing meaningful gets throw out of the engine that we can use for diagnostics before it crashes and debugging in Unity doesn't step into linked assemblies.

Is there any guidance here that anyone can throw out?

So our third party library builds with a NAnt script. After we install the latest version of Mono (2.8 at this time), the error goes away once the library is rebuilt.

Under Unity 2.6 that library was built using Mono 2.6.3 and ran fine.

Under Unity 3.0 that library fails when built with Mono 2.6.3 or 2.6.4 but not 2.8.

So that solves it. I blame Mono :)