public sealed override bool TrackChanges(object newValue, SyncContext context)
        {
            if (newValue != value)
            {
                value = newValue;
                if (value == null)
                {
                    EntityID = SyncHandle.NullEntityID;
                }
                else
                {
                    SyncHandle handle = context.GetHandleByObject(value);

                    // If no handle is found, then the supplie object is not in the syncpool.
                    //TODO: Here we could optionally add the object to the pool for laughs.
                    EntityID = (handle != null) ? handle.EntityID : SyncHandle.NullEntityID;
                }

                Synchronised = false;
                Revision     = context.Revision;
                return(true);
            }
            return(false);
        }