On Sat, 2011-07-09 at 17:26 -0500, Zachary Zolton wrote: > Could you change your filter to something like this? > > function(doc) { > return doc._deleted || doc.type == 'foo'; > } > > That way you replicate all deleted docs. That would work, thanks. I tried to avoid replicating millions of deleted documents together with a few hundred documents passing the filter. A solution might be this validate_doc_update function on the target database: function(newDoc, oldDoc, userCtx) { if (newDoc._deleted === true && !oldDoc) { throw({forbidden: 'do not create deleted docs'}); } } This way all deleted documents will be transmitted, but at least not written if there is no previous revision. The problem for changed values remains: when the source database changes type='foo' to type='bar', the target database keeps the old revision with type='foo'. Mitja