This doesn't directly address the problem, but I'm wondering why you're using the asynchronous method when you're really using it synchronously. Since the thread is waiting for the operation to complete immediately after calling BeginDownloadByteArray, you may as well just use the DownloadByteArray method. Also, if you do that then you shouldn't have this problem.
- Hans (EnterpriseDT)