I originally wrote the awful while loop above; let me give the background: I think that ActiveState has a cluster of web servers and they're not all up to date. Thus, by chance if you hit a server that doesn't have the file, you'll get a 404. But then you can retry the request, hoping that you'll hit a server that has been updated, and then the download will succeed. So that was the point behind the while loop. Does your replacement take this scenario into account? If you're solving the problem architecturally some other way, then I'm fine with deleting this awful while loop, but I just wanted to make sure that you were aware of the background. Thanks.