If statement issue??? HELP!

Below you'll find the complete code I'm having an issue with, i've refined it to try and fix the issue with no success.

//Code here has an issue
//I've tried it on a brand new Aruidno UNO and Duemilanove and get the same issue
//After 5 of so loops the system disregards the time delay and executes the if statement
void setup()
{
Serial.begin(9600);
}
int iElapsedTime = 0;
void loop()
{
if(millis() - iElapsedTime > 3000)
{
Serial.println("looping");
iElapsedTime = millis();
}
}

//This version of the loop SEEMS to work fine
void loop()
{
int elapsed = millis() - iElapsedTime;
if(elapsed > 3000)
{
Serial.println("looping");
iElapsedTime = millis();
}
}

//Can any help me here???

need to make your time tracking variables
unsigned long iElapsedTime;
as that is what millis() is.

thx!