If the application is multithreaded, I would guess that one of the threads is spinning in a while loop, possibly waiting for something to happen. With a thread procedure like: while(1) { WaitForSingleObject(..., 0) <- zero timeout } You can get 100% CPU utilization in a thread. Changing the timeout to 1 millisecond will fix this. Another possibility is that a thread in the database driver is using 100% of CPU time or something is polling and wating for the phone to connect. Hope this helps Peter