This is tricky to do because the locking works on the version information. If you have two versions with the same version number it is confusing for libapt (and therefore synaptic) to know what version you mean with "locked".
Hmm, I had assumed the semantics of this 'lock' to be like dselects 'hold' feature ([=] key), which means 'don't touch this package'. If synaptic's lock is really meant to work this way, by all means downgrade to wishlist and take the report as a request for a real 'hold' state.
My advice is to generally have unique version numbers (by e.g. adding "package_1.0-1localbuild1" etc to the version number).
You're right of course, it's just that I had expected a different behavior. Thanks, Chris

