I am using MSHTML.dll to host the browser control in my application. I can reliably get the browser control to get in a hung state. I downloaded the symbols from the symbol server so here is my call stack. Whenever I pause the debugger I am always in this CTreePos::GetCp() method. Near the bottom of the stack is my app using Application.Run(myForm); mshtml.dll!CTreePos::GetCp() + 0x40 bytes mshtml.dll!CLineServices::FigureNextPtp() + 0x21221 bytes mshtml.dll!CLSRenderer::RenderLine() + 0xb763 bytes mshtml.dll!CDisplay::Render() + 0x2a3 bytes mshtml.dll!CFlowLayout::Draw() + 0x1c bytes mshtml.dll!CLayout::DrawClient() + 0x54 bytes mshtml.dll!CDispLeafNode::DrawSelf() + 0xf55 bytes mshtml.dll!CDispNode::Draw() + 0xa9 bytes mshtml.dll!CDispContainer::DrawChildren() + 0x3e bytes mshtml.dll!CDispContainer::DrawSelf() + 0xf11 bytes mshtml.dll!CDispNode::Draw() + 0xa9 bytes mshtml.dll!CDispContainer::DrawChildren() + 0x3e bytes mshtml.dll!CDispContainer::DrawSelf() + 0xf11 bytes mshtml.dll!CDispNode::Draw() + 0xa9 bytes mshtml.dll!CDispContainer::DrawChildren() + 0x3e bytes mshtml.dll!CDispContainer::DrawSelf() + 0xf11 bytes mshtml.dll!CDispNode::Draw() + 0xa9 bytes mshtml.dll!CDispContainer::DrawChildren() + 0x3e bytes mshtml.dll!CDispContainer::DrawSelf() + 0xf11 bytes mshtml.dll!CDispNode::Draw() + 0xa9 bytes mshtml.dll!CDispContainer::DrawChildren() + 0x3e bytes mshtml.dll!CDispContainer::DrawSelf() + 0xf11 bytes mshtml.dll!CDispNode::Draw() + 0xa9 bytes mshtml.dll!CDispRoot::DrawBand() + 0x10e bytes mshtml.dll!CDispRoot::DrawBands() + 0xf8 bytes mshtml.dll!CDispRoot::DrawRoot() + 0x2ad bytes mshtml.dll!CView::RenderView() + 0x15b bytes mshtml.dll!CDoc::OnPaint() + 0x253 bytes mshtml.dll!CServer::OnWindowMessage() + 0x67 bytes mshtml.dll!CDoc::OnWindowMessage() + 0xf8 bytes mshtml.dll!CServer::WndProc() + 0x76 bytes user32.dll!_InternalCallWinProc@20() + 0x28 bytes user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes user32.dll!_DispatchClientMessage@20() + 0x4d bytes user32.dll!___fnDWORD@4() + 0x24 bytes ntdll.dll!_KiUserCallbackDispatcher@12() + 0x13 bytes user32.dll!_NtUserDispatchMessage@4() + 0xc bytes user32.dll!_DispatchMessageW@4() + 0xf bytes [External Code] MyApp.exe!MyApp.MyApp.Main(string[] args = {Dimensions:[2]}) Line 2212 + 0x8 bytes C# mscoree.dll!__CorExeMain@0() + 0x34 bytes kernel32.dll!_BaseProcessStart@4() + 0x23 bytes Any idea what is happening here?