<< Now they are upset because they thought they owned the code. >>
It's hard to get a completely straight answer on this. But I believe that the generally accepted notion is that custom programming done as work for hire means that the _customer_ owns the code unless otherwise specified by agreement. Certainly, that's my assumption when I do this kind of work. I don't put copyright notices in my code. That doesn't mean I don't reuse design structures and algorithms between projects. And I do have substantial pieces of utility code I move from project to project unchanged (such as the password management system I recently shared with some users here). I've never had an issue with sharing this kind of general purpose code between clients. If the client feels that the design or knowledge incorporated in your programming is not something they want you to share with other people it's their job to put you under some kind of non-disclosure agreement. (This applies specifically to _custom_ code written on an hourly or contract basis. The few times I've written _actual_ products that are sold as products to customers I or the company I wrote the program for have asserted copyright on the code). -- Larry

