I have a COM ADD-IN for Excel 2007 that makes calls into a VB6 COM dll. The VB6 code then loads a C++ COM object. The C++ dll communicates with a .NET dll via a bridge. The bridge is a C++ dll that handles the calls between C++ unmanged and .NET managed code. (Excel 2007 Add-in -> VB6 COM -> C++ Unmanaged -> C++ Managed -> VB.NET) The problem I having is that the C++ COM object will not load and the program hangs. However if I load the C++ COM object in the IDE and attach to excel things work. My guess is that since the code is running in the IDE it is running in a different process space than the ADD-IN. When not running in the IDE It seems that there are issues having two .NET layers of managed code and a middle layer of unmanged code. I have worked around this issue with other pieces of code by having the ADD-IN make calls to an out-of-process component rather than an in-process-component. Unfortunately it isnât an option with this piece of code and I âm hoping it is just a bug in .NET and will be fixed, or someone might have a suggestion. My guess is that since the code is running in the IDE it is running in a different process space than the ADD-IN. When not running in the IDE It seems that there are issues having two .NET layers of managed code and a middle layer of unmanged code.