private void debugAddNewUnitToTile(final Game serverGame, Tile tile) {
        Specification spec = serverGame.getSpecification();
        List<ChoiceItem<UnitType>> uts = new ArrayList<ChoiceItem<UnitType>>();
        for (UnitType t : spec.getUnitTypeList()) {
            uts.add(new ChoiceItem<UnitType>(Messages.message(t.toString()
                                                              + ".name"), t));
        }
        UnitType unitChoice = gui.showChoiceDialog(null, "Select Unit Type", "Cancel", uts);
        if (unitChoice == null) return;

        Player player = freeColClient.getMyPlayer();
        Player serverPlayer = serverGame.getFreeColGameObject(player.getId(),
                                                              Player.class);
        Tile serverTile = serverGame.getFreeColGameObject(tile.getId(),
                                                          Tile.class);
        Unit carrier = null;
        if (!serverTile.isLand() && !unitChoice.isNaval()) {
            for (Unit u : serverTile.getUnitList()) {
                if (u.isNaval()
                    && u.getSpaceLeft() >= unitChoice.getSpaceTaken()) {
                    carrier = u;
                    break;
                }
            }
        }
        ServerUnit serverUnit = new ServerUnit(serverGame,
            (carrier != null) ? carrier : serverTile,
            serverPlayer, unitChoice);
        serverUnit.setMovesLeft(serverUnit.getInitialMovesLeft());
        Game game = freeColClient.getGame();
        Unit unit = new Unit(game,
            serverUnit.toXMLElement(DOMMessage.createNewDocument()));
        if (carrier == null) {
            tile.add(unit);
        } else {
            game.getFreeColGameObject(carrier.getId(), Unit.class).add(unit);
        }
        gui.setActiveUnit(unit);
        player.invalidateCanSeeTiles();
        gui.refresh();
    }