I've developed a web application in ASP.NET for a client who now demands that I turn over the source code. There is no contract (all work has been done on a Time and Material basis) and he has not paid any extra money for the source. I have my own reasons for not handing over the code to him, but I need an opinion from the community.
Numerous analogies can be made (a baker does not give up his recipes, a car manufacturer does not provide schematics for his engines etc) but what I want are reasons for not giving up the code. Please provide one reason per answer so I can properly gauge the relative merit of each, and try not to make this a religious argument - if you want, create your own question 'Why are the reasons AGAINST withholding code from a client?'
Thanks much!
EDIT: I'm not asking for a legal opinion really, although they are instructive and keep them coming - I would prefer ethical reasons.