Added timeout w/ python2.5 fallback
Added error handling, optional timeout retries
Merge remote-tracking branch 'hmarr/timeout'