I2C Programming Issue with Adafruit LCD I2C Shield

Hello,
I am kind of new to Arduino and I am running into an issue with the communication between the Adafruit I2C LCD and an Arduino Pro Mini. Attached is a very simple code which uses a select button to display either "Hello" if the state is High or "Good-Bye" if the state is not High. I am having an issue with the display reading properly when the button is changing state. Sometimes it changes after about 30 seconds and then sometimes it doesn't change. I have checked the voltage when the button changes state and it changes from 5V to 0V and vice-versa so that seems okay. Is this an issue with the speed of I2C communication or is it a programming problem?

#include <LiquidCrystal.h>
#include <Wire.h>
#include <Adafruit_RGBLCDShield.h>
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
#define OFF 0x0
#define RED 0x1
#define YELLOW 0x3
#define VIOLET 0x5

int buttonState = 0;
const int button = 7;
void setup()
{
lcd.begin(16, 2);
pinMode(button, INPUT);
lcd.setBacklight(1);
lcd.clear();
Serial.begin(9600);

}
void loop()
{
buttonState = digitalRead(button);

if (buttonState == HIGH)
{
  lcd.setCursor(0, 0);
		lcd.print("Hello");
Serial.print("Hello");
delay(10);
}
else
{
  lcd.setCursor(0, 0);
		lcd.print("Good-bye");
Serial.print("Good-Bye");
delay(10);
}
}

Hi,

Is the i2C LCD that you are using ?
http://www.robotshop.com/ca/en/adafruit-rgb-lcd-keypad-shield-arduino-i2c.html
Was it preassembled or did it come as part of a DIY kit ?

Have you tried the examples provided in the library ?
(which library are you using by the way ? (A link to the library would be appreciated).
These have been tested and should be running right off the bat ...

I2C usually requires resistors across SDL/SCL and GND ...
Have these been included in your project ?
Maybe they are already included on the shield itself ?

Finally, are you able to write something very simple to the LCD screen (like "Hello World") ?

Cheers,

dan