diff --git a/Duplicati/Library/Main/Operation/Restore/Channels.cs b/Duplicati/Library/Main/Operation/Restore/Channels.cs
index 04320ac48..93ae32fc4 100644
--- a/Duplicati/Library/Main/Operation/Restore/Channels.cs
+++ b/Duplicati/Library/Main/Operation/Restore/Channels.cs
@@ -52,6 +52,7 @@ namespace Duplicati.Library.Main.Operation.Restore
///
public readonly IChannel<(long, string, TempFile)> DecryptRequest = ChannelManager.CreateChannel<(long, string, TempFile)>(buffersize: BufferSize);
+ // TODO DecompressionAck could be made into a channel of `long`, but because of the ReadFromEitherPrioritized workaround, it has to be an `object`.
///
/// Channel between and to keep track of volumes that are actively being read.
///
diff --git a/Duplicati/Library/Main/Operation/Restore/VolumeManager.cs b/Duplicati/Library/Main/Operation/Restore/VolumeManager.cs
index e8cdbd94b..8fb9a832c 100644
--- a/Duplicati/Library/Main/Operation/Restore/VolumeManager.cs
+++ b/Duplicati/Library/Main/Operation/Restore/VolumeManager.cs
@@ -43,12 +43,13 @@ namespace Duplicati.Library.Main.Operation.Restore
private static readonly string LOGTAG = Logging.Log.LogTagFromType();
///
- /// Helper class to read from either of two channels.
+ /// Helper class to read from either of three channels, in a prioritized manner, where channel1 is consumed first.
/// This is a workaround for the fact that CoCoL seems to deadlock on ReadFroAnyAsync
///
/// The first channel to read from.
/// The second channel to read from.
- private sealed class ReadFromEither(IReadChannel