I'm using the VS2005 Express beta, so my code is being compiled and run under .NET v2.0, if that might effect something.
I've pared down the code to a minimum -- I'm just initializing, Run(), BeginScene(), EndScene(). When I click the window's close button, the code runs through to the end of my Main() method, and then the exception is thrown durring the GC's cleanup of the IrrlichtDevice. If I'm missing something I should be doing myself for cleanup, I dont know what it is.
Here's the exeption, as it prints to the console:
Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at irr.IUnknown.drop(IUnknown* )
at Irrlicht.IrrlichtDevice.Finalize()