public void removeAllEventsForThisNode(Node n){
		boolean changed = false;
		
		Iterator<Event> eventIter = iterator();
		while(eventIter.hasNext()){
			Event e = eventIter.next();
			if(e.isNodeEvent() && n.equals(e.getEventNode())) {
				// an event that would execute on this node
				eventIter.remove();
				e.free(); // free the event (and also the packet, if it's a packet event)
				changed = true;
			} else {
				// test whether it's a msg event sent by this node, then invalidate
				if(e instanceof PacketEvent) {
					PacketEvent pe = (PacketEvent) e;
					if(pe.packet.origin.equals(n)) {
						pe.packet.denyDelivery();
					}
				}
			}
		}
		
		if(changed){
			notifyListeners();
		}
	}