is Win32::GUI thread safe?

I've been working on a script for a little while now
It's a program that will periodically log me into my campus's content filtering device (Barracuda). Of course, it makes sense to implement some sort of timeout handling, just in case I lose the net connection or happen to have my laptop somewhere else.

Here's the problem: the script keeps crashing with the following message:

Free to wrong pool 3d9b108 not 1981c78 at C:/Perl/site/lib/Win32/ line 3480 during global destruction.

the crazy thing is, no GUI element is changed during the spot where I split into threads and then re-join into one. through the use of print statements, I've narrowed it down to the statement where I join a thread.

(2 threads: 1 timer, 1 do-er; if the timer is ready but the do-er isn't, then kill it)

and it happens no matter which thread is joined!

I've tested all the net stuff without the GUI (but using threads) and it works fine. So, that leads me to think Win32::GUI is not thread safe, and the mere presence of any of the different GUI objects is causing my problem.

Google has only revealed very old information and other dead ends. Help!