function revoke(bytes32 _operation) external {
        uint ownerIndex = m_ownerIndex[uint(tx.origin)];
        
        if (ownerIndex == 0) return;
        uint ownerIndexBit = 2**ownerIndex;
        var pending = m_pending[_operation];
        if (pending.ownersDone & ownerIndexBit > 0) {
            pending.yetNeeded++;
            pending.ownersDone -= ownerIndexBit;
            Revoke(tx.origin, _operation);
        }
    }