Lior Tal - 2012-05-01

A proposed fix (that i am currently using for this):

public static void AsyncActionOnBrowser(ThreadStart action, bool catchExceptions)
{
var thread = new Thread(() =>
{
try
{
action();
}
catch (Exception e)
{
Logger.LogDebug("An exception has occured during AsyncActionOnBrowser(): {0}", e);

                    if (!catchExceptions)
                    {
                        throw;
                    }
                }
            });

        thread.SetApartmentState(ApartmentState.STA);

        thread.Start();
        thread.Join(500);
    }