IR Remote Controller Library - Interrupt based rather than polled

Using:
Arduino 1.0
ATMega328P
Pin2
Infrared Remote
Infrared Receiver
IRController Library
Devices Library
PCInterrupt Library

So I'm trying to use this library, but I can only get one keypress and then it won't receive any more. I modified the example code loop function to this:

void loop(){
  int val = irController.read(); 
  if (val == 0) Serial.println(val);
}

The output comes out like this on the Serial Monitor

Started
IRController: Pin=2 Success
[0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: ]
0
0
[2080: 1] [2084: 1] [1156: 0] [1108: 0] [1104: 0] [2108: 1] [1132: 0] [1108: 0] [2108: 1] [1104: 0] [1132: 0] [2108: 1] [1108: 0] [1104: 0] [1080: 0] [0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: ]
2
[2108: 1] [2080: 1] [2080: 1] [1160: 0] [1104: 0] [1108: 0] [2108: 1] [1132: 0] [1104: 0] [2108: 1] [1108: 0] [1132: 0] [2108: 1] [1104: 0] [1108: 0] [1080: 0] [0: 0: 1080: 0] [2160: 1] [2160: 1] [2184: 1] [1108: 0] [1052: 0] [1080: 0] [1160: 0] [1080: 0] [2160: 1] [2160: 1] [2184: 1] [1100: 0] [1060: 0] []
3588

After one keypress I can keep smashing buttons but nothing new will come in on the Serial Monitor.

I've tried with this code: http://www.sparkfun.com/datasheets/Components/General/Cheapo_IR_Control.pde
And it works fine, except that I can't use that code in my project because I need it to run in real-time.

Any ideas?