Allow callback to determine if a second persist is needed

Lets try this again then ;)

Fixes #350