Leonardo Serial problem

i'm using Leonardo R3 and IDE 1.5.5

This simple program only works as expected with a delay after Serial.begin(), why?

int Val = 0;
void setup() {
//Initialize serial and wait for port to open:
Serial.begin(9600);
delay(700); // Why does Leonardo need the delay higher than 700 ms????
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.println ("Hello World");
}

void loop() {
//proceed normally

Serial.print ("Hi ");
Serial.println (Val);
delay(1000);
Val++;
}