Anything stopping us from having a getEntry() on ModifyOperationContext which returns ClonedServerEntry.  I'm thinking we can do the modifications on this entry and then the getOriginalEntry() method on it can get the original state of the entry when needed. 

This way things like the JNDI provider does not need to calculate earlier state and lookup the present state.  I think this will also help with respect to other aspects of modifications.