Did you not fancy updating your implementation to cope with this scenario (where the TM rolls back participants if the first one does a heuristic rollback). It does leave a hole?