public void removeSuccessor(Jump jump) {
		SuccessorInfo destInfo = (SuccessorInfo) successors
				.get(jump.destination);
		Jump prev = null;
		Jump destJumps = destInfo.jumps;
		while (destJumps != jump && destJumps != null) {
			prev = destJumps;
			destJumps = destJumps.next;
		}
		if (destJumps == null)
			throw new IllegalArgumentException(addr
					+ ": removing non existent jump: " + jump);

		if (prev != null)
			prev.next = destJumps.next;
		else {
			if (destJumps.next == null) {
				successors.remove(jump.destination);
				jump.destination.predecessors.remove(this);
			} else
				destInfo.jumps = destJumps.next;
		}
	}