         }
 
         // if 15 seconds left on the timer, dump everything in 8
-        if(millis() > 105*ONE_SEC) {
+        if((millis() - startTime) > (unsigned int)(105*ONE_SEC)) {
             currState = BACKING_UP;
             returnToState = SEEKING_EXCHANGE;
             Backup(2, BACKWARD);

            currState = SEEKING_SERVER;
            Transition(SEEKING_SERVER);
            // Bot to shut off automatically in 2 minutes
            TMRArd_InitTimer(ENDGAME_TIMER, 120 * ONE_SEC);   
        }
        break;
    case SEEKING_SERVER:

        sideServerBeacon.Clear();
        sideExchangeBeacon.Clear();
        TMRArd_InitTimer(CLEAR_BEACON_TIMER, BEACON_CLEAR_PERIOD);
    }
    
    if (TMRArd_IsTimerExpired(ENDGAME_TIMER))
    {
        if(numResetEndTimer == 3) {
          currState = WAITING_TO_END;
          turntable.Stop();
          drivetrain.Stop();
          presser.Rest();
        } else {
          TMRArd_InitTimer(ENDGAME_TIMER, (unsigned long)(30 * ONE_SEC));   
          numResetEndTimer++;
        }
    }

    // State dependent
