Btw, reliably finding the previous value (and not relying on the return value of the next interceptor) is also important for the conditional replace/remove methods that return a boolean rather than the old value (do we have a jira for this?). If we can sort this out then we can also make this perf improvement without a new flag.