A: 

"Note that from the perspective of NSRunloop, NSTimer objects are not "input"—they are a special type, and one of the things that means is that they do not cause the run loop to return when they fire." (from NSRunLoop Class Reference) - so I think you block the runloop from continuing? Perhaps put the timer to a different thread as solution? I have problems on this on my own, too :(

cheese