That's true, although since I suggested encoding the MAC address in the preference file rather than in the code itself, the "breaking" would be minimal since the user could just re-enter his code, which would still work. Your suggest to use the username instead may be a good one, though. The problem with it is that if someone wants to register your app by machine rather than by user, by putting the preference file in /Library/Preferences instead of ~/Library/Preferences, this will break that ability.