diff --git a/osu.Game/Database/IModelDownloader.cs b/osu.Game/Database/IModelDownloader.cs
index 17f1ccab06..99aeb4eacf 100644
--- a/osu.Game/Database/IModelDownloader.cs
+++ b/osu.Game/Database/IModelDownloader.cs
@@ -15,11 +15,13 @@ namespace osu.Game.Database
{
///
/// Fired when a download begins.
+ /// This is NOT run on the update thread and should be scheduled.
///
event Action> DownloadBegan;
///
/// Fired when a download is interrupted, either due to user cancellation or failure.
+ /// This is NOT run on the update thread and should be scheduled.
///
event Action> DownloadFailed;
diff --git a/osu.Game/Online/DownloadTrackingComposite.cs b/osu.Game/Online/DownloadTrackingComposite.cs
index 6e7ef99c6d..0769be2998 100644
--- a/osu.Game/Online/DownloadTrackingComposite.cs
+++ b/osu.Game/Online/DownloadTrackingComposite.cs
@@ -53,17 +53,17 @@ namespace osu.Game.Online
manager.ItemRemoved += itemRemoved;
}
- private void downloadBegan(ArchiveDownloadRequest request)
+ private void downloadBegan(ArchiveDownloadRequest request) => Schedule(() =>
{
if (request.Model.Equals(Model.Value))
attachDownload(request);
- }
+ });
- private void downloadFailed(ArchiveDownloadRequest request)
+ private void downloadFailed(ArchiveDownloadRequest request) => Schedule(() =>
{
if (request.Model.Equals(Model.Value))
attachDownload(null);
- }
+ });
private ArchiveDownloadRequest attachedRequest;