Document versioning and check-in/out systems are typically server-centric. This is needed, due to the nature of the problem. In a "symmetric" peer to peer system, where nobody is the "master", it is a very hard (and depending on constraints, even impossible) thing to do. See also here for related discussions:
http://forum.collanos.com/index.php?topic=1303.0 or
http://forum.collanos.com/index.php?topic=1122.0.
In a server-less system, locking can really only be guaranteed if ALL users formally agree with it (all must be online), or, if the LOCK is created when the object is created, and always stays with the object in a managed way.
We will certainly continue to research this topic. Hopefully we will soon find a simple yet workable solution.