As part of a large driver, I have some code that was written 5+ years ago that uses nested SEH. This code builds fine in MSVC 6 & 7.1 targeting x86. When using VC 8 targeting AMD64, our debug build is fine (tested/working), but we experience a crash when linking the release driver. The code looks roughly like:== __try { //OS Call } __except( EXCEPTION_EXECUTE_HANDLER ) { __try { //OS_call(different parameters) } __except( EXCEPTION_EXECUTE_HANDLER ) { //review parameters, cleanup, unwind } }==Workaround: If we move the nested try/except block to another function, the crash goes away."Finished pass 1Generating codexxxx.cpp(1109) : fatal error C1001: An internal error has occurred in the compiler.(compiler file 'f:\beta2\vctools\compiler\utc\src\P2\main.c[0x10B080F6:0x0000004F]', line 183) To work around this problem, try simplifying or changing the program near the locations listed above.Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more informationLINK : fatal error LNK1000: Internal error during IMAGE::BuildImage Version 8.00.50215.44 ExceptionCode = C0000005 ExceptionFlags = 00000000 ExceptionAddress = 10B080F6 (10B00000) "d:\msvc80\VC\BIN\x86_amd64\c2.dll" NumberParameters = 00000002 ExceptionInformation[ 0] = 00000000 ExceptionInformation[ 1] = 0000004FCONTEXT: Eax = 00000000 Esp = 0012EDCC Ebx = 00000000 Ebp = 0012EDF8 Ecx = 00000000 Esi = 00000000 Edx = 073E6C00 Edi = 00000000 Eip = 10B080F6 EFlags = 00010202 SegCs = 00000023 SegDs = 0000002B SegSs = 0000002B SegEs = 0000002B SegFs = 00000053 SegGs = 0000002B Dr0 = 00000000 Dr3 = 00000000 Dr1 = 00000000 Dr6 = 00000000 Dr2 = 00000000 Dr7 = 00000000"