public void unregister(PeerNATInitiator initiator) {
    List to_cancel;

    synchronized (initiators) {
      LinkedList requests = (LinkedList) initiators.remove(initiator);

      if (requests == null) {

        Debug.out("initiator not present");

        return;

      } else {

        to_cancel = requests;
      }
    }

    Iterator it = to_cancel.iterator();

    while (it.hasNext()) {

      PeerNATTraversal traversal = (PeerNATTraversal) it.next();

      traversal.cancel();
    }
  }