Here's a strange one.

I've got a conversion application I've written in Qt. User enters some values, clicks a button, and it calculates some new values.

It was compiled on my Windows 7 x64 system, and works perfectly. When I copy the executable and supporting DLLs to any other Windows 7 computer, be it 32- or 64-bit, it runs perfectly. When I run it on any Windows XP machine (I've tried 3 so far) the program will run, but will crash after a few conversions (usually on the 5th one.) When running on Windows 7, I can perform as many conversions as I want, and I can't get it to crash.

This doesn't make any sense to me. Why would the program run fine in one OS and not another? I've got the same executable and same DLLs. I've even tried it on one system which dual boots XP and 7, and sure enough, it works in 7 but not XP.
I have a lot of pointer allocation and deallocation going on, so it might be a null pointer reference, but then why would it magically work in 7?

Anyone have any ideas what it might be? I really don't want to have to resort to installing a debugger/development environment on the XP machine.

I can't post code because
1) The program is very large and complex
2) Some of it is proprietary