Need help getting a program to loop

PaulS:
Resetting the message received time, without resetting index, will only half solve the problem.

well not if index is calculated based on that variable, right?As per the start of the loop()

    unsigned long elapsed = millis() - received;
    int index = elapsed/MILLIS_PER_LETTER;

seems it's the case...