anchor.diff:              }));
           }
         }).then((_) => _release_locks()).then((_) => nextVersion)
  -      .catchError((e) => _release_locks().then((_) => _processError(e)));
  +      .catchError((e, s) => _release_locks().then((_) => _processError(e, s)));
     }
   
     Future change(String _id, Map newData, String author, {clientVersion: null, upsert: false}) {
  
positive.code:     });
      beforeKeys['version'] = 1;
      afterKeys['version'] = 1;
      Future res = _conn.then((_) =>
          _db.createIndex(historyCollectionName(collectionName),
              keys: beforeKeys))
      .then((_) => _db.createIndex(historyCollectionName(collectionName),
                            keys: afterKeys))
      .then((_) {
        if (keys.isNotEmpty) {
          return _db.createIndex(collectionName, keys: keys, unique: unique);
        } else {
          return null;
        }
      });
      init.add(res);
      return res;
    }
  
negative.code:             }));
          }
        }).then((_) => _release_locks()).then((_) => nextVersion)
        .catchError((e, s) => _release_locks().then((_) => _processError(e, s)));
    }
  
    Future update(selector, Map modifier(Map document), String author) {
  