private void setEstimatedLapsByLast()
	{
		int oldEstimatedLapsLast = this.estimatedLapsLast;
		Duration oldEstimatedTimeLast = this.estimatedTimeLast;
		Competitor competitor = Competitor.getByPosition(1);

		if (competitor == null) {
			this.estimatedLapsLast = lapsToGo;
			return;
		}

		int laps = competitor.getLapsComplete();

		if (laps == 0) {
			this.estimatedLapsLast = lapsToGo;
			return;
		}

		int time = competitor.getTotalTime().toInt();
		int avgLapTime = competitor.getLastLap().toInt();

		do {
			time += avgLapTime;
			laps += 1;
		} while (time < scheduledTime.toInt());

		if (lapsToGo == 0 || laps < lapsToGo + competitor.getLapsComplete()) {
			this.estimatedLapsLast = laps;
		} else {
			this.estimatedLapsLast = scheduledLaps;
		}

		this.estimatedTimeLast = new Duration(time);

		changeSupport.firePropertyChange("estimatedLapsLast", oldEstimatedLapsLast,
			Integer.toString(this.estimatedLapsLast));
		changeSupport.firePropertyChange("estimatedTimeLast", oldEstimatedTimeLast, estimatedTimeLast);
	}