Query: catching two button presses

I have three buttons and want to catch if two buttons are pressed at the same time for x seconds.
The code works fine if one button is pressed but I can't get it working for two buttons.
The code snippets below are in the main loop.
What am I missing?

This does not work:
if (digitalRead(BUP)==LOW) {
if (digitalRead(BDOWN)==LOW) {
i = 0;
while ((digitalRead(BUP)==LOW) && (digitalRead(BDOWN)==LOW)) {
i++;
digitalWrite(LED, HIGH);
delay(1);
if (i > 2000) { // press for 2 seconds
i = 0;
key = c_menu; // button debounced and key selected
}
}
}
}

Nor does this variation:
if ( (digitalRead(BUP)==LOW) && (digitalRead(BDOWN)==LOW) ){
digitalWrite(LED, HIGH); // WHY DOES THE LED NOT COME ON????
while ((digitalRead(BUP)==LOW) && (digitalRead(BDOWN)==LOW))
// etc...
}

This works fine:
if (digitalRead(BUP)==LOW) {
i = 0;
while (digitalRead(BUP)==LOW) {
i++;
if (i > 2000) {
i = 0;
key = c_up; // button debounced and key selected
}
}
}

Show all your code.

You need to detect when each switch BECOMES pressed or released independently. Look at the state change detection example.