if-condition

Hi.
I have this expression:

if (Serial.read() == 'A' || Serial.read() == 'B')
{Serial.print("Something");}

I send an 'A' and it works. But when I send a 'B', there is no response.
Why?

(The condition
int a = 15;
if(a>=10 || a<=20) Serial.print("Something"); works).

It seems, the program aborts after the first wrong expression, Serial.read() = 'A', as i would expect it if i used the &&-operator.

Any ideas, what could be wrong?
I have a arduino mega board and the 0017 software.

Thanks

if (Serial.read() == 'A' || Serial.read() == 'B')
{Serial.print("Something");}

OK, imagine you type just 'B'
The left most expression "Serial.read() == 'A' " reads the 'B' from the receive buffer, and it's false ('A' != 'B'), so it reads the receive buffer again.
But the receive buffer is empty (you just read the only character in it), so "read" returns -1. (-1 != 'B' either!)

byte val = Serial.read ();
if (val == 'A' || val == 'B')
...

ok, thanks