anchor.diff:            }));
             markToken(data['_id'], result);
           });
  +        change = new ChangeSet();
  +      });
  +    }
  +
  +    _subscriptions.add(collection.onChangeSync.listen((event) {
  +      if (event["author"] != 'clean_sync') {
  +        var newChange = event['change'];
  +        assert(newChange is ChangeSet);
  +        change.mergeIn(newChange);
  +        notify();
         }
       }));
     }
  
positive.code:           markToken(data['_id'], result);
          });
  
          event["change"].removedItems.forEach((data) {
            Future result = _connection.send(() => new ClientRequest("sync", {
              "action" : "remove",
              "collection" : collectionName,
  
negative.code:           markToken(data['_id'], result);
          });
  
          change.strictlyChanged.forEach((DataMap data, ChangeSet changeSet) {
            Future result = _connection.send(() => new ClientRequest("sync", {
              "action" : "change",
              "collection" : collectionName,
  