Thanks for the example, but the idea was that I would prompt the user for input (using an entry widget) and then initiate the download. The updates are supposed to be asynchronous so a button doesn't need to pushed to see the progress. The idea is that once a download has been initiated the update function should run in the background so as not to hang up the application (the download link is retrieved via an entry widget). Your sample code has the same issue that mine did, namely that the download routine runs before the gui is even displayed. Do you have the same issue when you run your code? Perhaps something is wrong with my version of Tk ( though I've had this problem on two different machines running different linux distributions, so that's unlikely).