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);
			}
		}
	}