Bugfix in Shield.DoRollback.

The method could call rollback side-effects multiple times.