diff --git a/src/Opc.Ua.Core/Stack/Tcp/UaSCBinaryClientChannel.cs b/src/Opc.Ua.Core/Stack/Tcp/UaSCBinaryClientChannel.cs
index b39c58895d..0f989e2679 100644
--- a/src/Opc.Ua.Core/Stack/Tcp/UaSCBinaryClientChannel.cs
+++ b/src/Opc.Ua.Core/Stack/Tcp/UaSCBinaryClientChannel.cs
@@ -358,6 +358,14 @@ namespace Opc.Ua.Bindings
/// is null.
///
///
+ ///
+ /// The state machine of a request is pooled, so the returned task must be awaited
+ /// once, like any value task.
+ ///
+#if NET6_0_OR_GREATER
+ [System.Runtime.CompilerServices.AsyncMethodBuilder(
+ typeof(System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<>))]
+#endif
public async ValueTask SendRequestAsync(
IServiceRequest request,
int timeout,