resolves #1300: passing 0 to timeout() will disable timeouts