This same problem can occur on a HyperThreading processor as well. Try placing SetThreadAffinityMask(GetCurrentThread(), 1); in your application initialization code (NOT FORM CODE, APP CODE).

Sorry, some how I overlooked this thread till now . As the post above said, that typically fixes any issues, personally I've modified my timer units to have this in their initialization.