> >Shall I surrender to defeat on this and just use flash and leave my code >naked?? > A few years back, I used the following scheme, you might be able to adapt it to slow down would be copiers of your product. First dervive a number from the object code, using a suitable algorithm. This number is stored in eeprom during the manufacturing process. Hash it with a unique serial number. (I had a DS1994 which claims to have a unique serial number) If you don't have this then generate a unique 64 bit serial number for each unit manufactured. This then provides a means for your code to validate itself, by comparing the derived number with the number installed during manufacturing. Now the clever bit. If you detect a mismatch indicating that the product has not been "registered", generate a random time delay say 10 - 48 hours. Then, after that time, fail the product in some subtle way that will not be easy to debug for the copier. Preferably causes some damage, maybe self destruct, depends on what hardware you have at your disposal. At very least you should erase any configuration data in eeprom etc. etc. Now, what happens is the copy of the product will appear to function for a while and then start to screw up, preferably at random, and with maximum cost to the environment it is placed in. It won't stop them but it will sure cost them more. Good luck with the project. -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.