diff --git a/src/lib/nfs/Connection.cxx b/src/lib/nfs/Connection.cxx
index 9d9cd8a52..6e9f77345 100644
--- a/src/lib/nfs/Connection.cxx
+++ b/src/lib/nfs/Connection.cxx
@@ -391,7 +391,7 @@ NfsConnection::DestroyContext()
 	DeferredMonitor::Cancel();
 
 	if (SocketMonitor::IsDefined())
-		SocketMonitor::Cancel();
+		SocketMonitor::Steal();
 
 	callbacks.ForEach([](CancellableCallback &c){
 			c.PrepareDestroyContext();