Just a follow-up...unfortunately Win32::OLE will not work in any multi-threaded application. I dug around and found a forum with a post by the author indicating this was a known limitation that may be addressed in the future, but would require a significant amount of work. For my current needs, I split the one script into two separate scripts.