diff --git a/windows/TweetDuck/Browser/Base/CefBrowserComponent.cs b/windows/TweetDuck/Browser/Base/CefBrowserComponent.cs
index fd25638f..cd1d2592 100644
--- a/windows/TweetDuck/Browser/Base/CefBrowserComponent.cs
+++ b/windows/TweetDuck/Browser/Base/CefBrowserComponent.cs
@@ -73,19 +73,20 @@ private void OnFrameLoadEnd(object sender, FrameLoadEndEventArgs e) {
 
 		public override void DownloadFile(string url, string path, Action onSuccess, Action<Exception> onError) {
 			Cef.UIThreadTaskFactory.StartNew(() => {
+				var fileStream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read);
+
 				try {
 					using IFrame frame = browser.GetMainFrame();
-					var request = frame.CreateRequest(false);
 
+					var request = frame.CreateRequest(false);
 					request.Method = "GET";
 					request.Url = url;
 					request.Flags = UrlRequestFlags.AllowStoredCredentials;
 					request.SetReferrer(Url, ReferrerPolicy.Default);
 
-					var fileStream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read);
-					var client = new CefDownloadRequestClient(fileStream, onSuccess, onError);
-					frame.CreateUrlRequest(request, client);
+					frame.CreateUrlRequest(request, new CefDownloadRequestClient(fileStream, onSuccess, onError));
 				} catch (Exception e) {
+					fileStream.Dispose();
 					onError?.Invoke(e);
 				}
 			});