change to use NSTimer to prevent blocking in iOS 5 with the timeout event not firing.
fix identation