private void moveAsOlderSibling() {
		JoeTree tree = targetNode.getTree();

		// Put the Undoable onto the UndoQueue
		CompoundUndoableMove undoable = new CompoundUndoableMove(tree.getSelectedNodesParent(),targetNode.getParent());
		int targetIndexAdj = 0;
		int currentIndexAdj = 0;
		
		for (int i = 0, limit = tree.getSelectedNodes().size(); i < limit; i++) {
			// Record the Insert in the undoable
			Node nodeToMove = tree.getSelectedNodes().get(i);

			// Abort if node is not moveable
			if (!nodeToMove.isMoveable()) {
				continue;
			}
		
			int currentIndex = nodeToMove.currentIndex();
			int targetIndex = targetNode.currentIndex();
			
			if (nodeToMove.getParent() == targetNode.getParent()) {
				if (currentIndex > targetIndex) {
					targetIndexAdj++;
					targetIndex += targetIndexAdj;
				} else if (currentIndex < targetIndex) {
					currentIndex += currentIndexAdj;
					currentIndexAdj--;
				}
			} else {
				targetIndexAdj++;
				targetIndex += targetIndexAdj;
				currentIndex += currentIndexAdj;
				currentIndexAdj--;
			}
			
			undoable.addPrimitive(new PrimitiveUndoableMove(undoable, nodeToMove, currentIndex, targetIndex));
		}
		
		if (!undoable.isEmpty()) {
			if (undoable.getPrimitiveCount() == 1) {
				undoable.setName("Move Node");
			} else {
				undoable.setName(new StringBuffer().append("Move ").append(undoable.getPrimitiveCount()).append(" Nodes").toString());
			}
			tree.getDocument().undoQueue.add(undoable);
			undoable.redo();
		}
	}