*/
    private boolean doExecuteGotoOrders() {
        Player player = freeColClient.getMyPlayer();
        Unit active = gui.getActiveUnit();

        // Ensure the goto mode sticks.
        if (moveMode < MODE_EXECUTE_GOTO_ORDERS) {
            moveMode = MODE_EXECUTE_GOTO_ORDERS;
        }

        // Process all units.
        Unit stillActive = null;
        while (player.hasNextGoingToUnit()) {
            Unit unit = player.getNextGoingToUnit();
            gui.setActiveUnit(unit);

            // Give the player a chance to deal with any problems
            // shown in a popup before pressing on with more moves.
            if (gui.isShowingSubPanel()) {
                gui.requestFocusForSubPanel();
                return false;
            }

            // Move the unit as much as possible
            if (moveToDestination(unit)) stillActive = unit;
            nextModelMessage();
        }
        gui.setActiveUnit((stillActive != null) ? stillActive : active);
        return stillActive == null;
    }