was being called with interrupts disabled, when it was actually being called with them enabled. Pointed out by: tegge