Troubles using "Serial." library

PaulS:
The Serial.available() function returns the number of bytes waiting to be read. As soon as it reports that there is one byte available, you proceed to read 24 values. That causes most of the reads to fail, returning -1, which you treat as good data.

Yes I knew that, I tried to fix with:

if (Serial.available() >= 24)
{
 ...read data...
}
...rest of the code...

I still get the same problem, even if I type nothing in the Serial Monitor window and I really don't understand why.