private void deliver (Message m) {
	int source = m.getSource();
	int destination = m.getDestination();
	if (destination != -1) {
	    unicast(m, getDelay());
	} else {
	    int delay;
	    boolean drop = false;
	    boolean first = true;
	    /* Broadcast. */
	    for (int i = 1; i <= r.n; i++) {
		drop = (source == i && Utils.SELFMSGENABLED == false);
		if (drop)
		    continue;

		if (first) {
		    delay = getDelay();
		    first = false;
		} else delay = -1;
				
		m.setDestination(i);
		unicast(m, delay);
	    }
	}
    }