This can be confusing if the user quickly exits and re-opens a talk that is being downloaded. The original button will be there, perhaps looking like the download was cancelled, which is untrue. This could potentially be solved by having a "download" status column in the DB for talks, with statuses like not_downloaded, downloading, and downloaded, so we can set the appropriate image. But this isn't very high priority.