I cannot help making a comment on this topic. While "deprecated" is supposed to mean "obsolete", on Linux TThread.Suspend never worked (a far as I can remember), but it did on Windows. This is really disappointing because there is a real need for the thread Suspend and Resume functionalities, on all operating systems. The reference to Java in the Freeepascal wiki points out the reasons why thread Stop should not be used; however, there is a simple workaround for this involving a global boolean variable, which works as expected provided the thread does not hang. It then goes on explaining that Suspend and Resume could be replaced with Wait and Notify; I wonder why those mechanisms were not implemented in Delphi under the Suspend and Resume monikers. I remember a couple years ago Embarcadero made a decision to put more effort into developing the 64-bit version of the compiler rather than into enhancing multithreading functionality. A thread may hang for unexpected reasons, therefore a mechanism for killing the thread, other than closing the application, should be implemented. Anyway, the issue remains that there are situations where a thread needs to be suspended or else some data/progress will be lost.