[Tim Peters] ... > OTOH, the transaction.Savepoint.rollback() implementation is a bit > schizophrenic: it invalidates self, but leaves it in the transaction's > stack (for savepoints "after" self, it both invalidates them and removes > them from the transaction's stack). Oops! Not true. It does remove self from the stack.