This is a universally bad idea to do, while I sympathize with being screwed by less than savory business people, this kind of action will most likely not result in getting the money owed and can only serve to cause you more problems.<p>Potential clients are going to be leery of dealing with you if they ever get wind of such a stunt and any legal standing that you had just went out the window.<p>If this was a final act to try to extract payment, you should know, they are not going to pay. For whatever reason, whether it be that they where unhappy with the results or they where just trying to scam you, they are not going to pay.<p>They will find another sucker to build it and not pay them as well. Eventually they will get someone who they either like or who they can play hardball with to get the work at a fraction of the price after the fact.<p>9 times out of 10 these situations result from a newer developer and a client that feels they did not get what they want. If that is the case with your situation, I would use the situation as a learning experience and next time document everything and get client sign-off further demand 50% up front, if they are not willing to meet you half way walk. Many times new freelancer will be afraid to ask for 50% up front for fear of loosing the gig, but working a gig for free is worse than not getting the gig at all.<p>Finally, while one a moral level I totally agree with your actions, you broke the law and you have ceeded a huge upper-hand to your ex-client. If they so chose to do, they could via the courts force you to hand over the source code and be awarded damages that far exceed the compensation that you would have received. You could end up owing them money if they force the issue and that is just the civil dispute you have also violated some criminal charges that they could pursue if they chose to be dicks about the whole thing. The have a totally separate case for slander as well.<p>If you want to disabling non-paying customers in the future, you need to specifically set up the contract as a license in which you own the source code and license it to them. Further you cannot access their machines and disable the code, it must call out to a licensing server that you own and operate. You can make ownership of the code transferable upon final payment of the contract but this is the only way to get around civil and criminal charges for disabling a clients software and the disabling has to be performed on a system that you own and operate.