diff -Nur -X/mnt/data/freeciv-dev/freeciv/diff_ignore freeciv/common/unit.c codeciv/common/unit.c --- freeciv/common/unit.c Fri Jul 20 12:08:26 2001 +++ codeciv/common/unit.c Fri Jul 20 12:19:45 2001 @@ -53,7 +53,10 @@ if (val < 2 * SINGLE_MOVE) val = 2 * SINGLE_MOVE; } - if (val < SINGLE_MOVE) val = SINGLE_MOVE; + if (val < SINGLE_MOVE + && get_unit_type(punit->type)->move_rate > 0) { + val = SINGLE_MOVE; + } return val; } diff -Nur -X/mnt/data/freeciv-dev/freeciv/diff_ignore freeciv/server/unittools.c codeciv/server/unittools.c --- freeciv/server/unittools.c Fri Jul 20 12:08:37 2001 +++ codeciv/server/unittools.c Fri Jul 20 12:27:33 2001 @@ -939,8 +939,10 @@ /* to allow a settler to begin a task with no moves left without it counting toward the time to finish */ - if (punit->moves_left){ - punit->activity_count += mr/3; + if (punit->moves_left) { + punit->activity_count += mr/SINGLE_MOVE; + } else if (mr == 0) { + punit->activity_count += 1; } unit_restore_movepoints(pplayer, punit);