anchor.diff:      let addClientConnection (jid : JabberId) (xmppClient : IXmppClient) = 
           // Note don't use xmppClient as we are within a context (possibly within the NegotiationComplete event)
           let bareId = jid.BareId
  -        let resources = clientConnections.GetOrAdd(bareId, fun b -> new ConcurrentDictionary<_, _>())
  +        let resources = clientConnections.GetOrAdd(bareId, fun _ -> new ConcurrentDictionary<_, _>())
           match jid.Resource with
           | None -> failwith "no resource attached to client"
           | Some r -> 
  -            resources.AddOrUpdate(r, xmppClient, fun res old -> closeOldWithConflict old xmppClient) |> ignore
  +            resources.AddOrUpdate(r, xmppClient, fun _ old -> closeOldWithConflict old xmppClient) |> ignore
               Log.Info(fun () -> L "Client connected and added to connections: %s" jid.FullId)
       
       let addServerConnection (jid : JabberId) (xmppClient : IXmppClient) = 
           let bareId = jid.BareId
  -        outgoingS2sConnections.AddOrUpdate(bareId, xmppClient, fun s c -> closeOldWithConflict c xmppClient) |> ignore
  +        outgoingS2sConnections.AddOrUpdate(bareId, xmppClient, fun _ c -> closeOldWithConflict c xmppClient) |> ignore
       
       let addConnection (streamType : StreamType) (jid : JabberId) (xmppClient : IXmppClient)  = 
           (if streamType.OnClientStream then addClientConnection
  
positive.code:             // Timeout connection after 5 minutes
              do! Async.Sleep(60000 * 5)
              match pendingConnections.TryRemove(xmppClient) with
              | true, v -> 
                  // timeout, CloseConnection should make sure that exited is called
                  Log.Err(fun () -> L "Connection timed out without negotiationComplete event!")
                  do! xmppClient.CloseConnection true
              | _ -> ()
          }
          |> Log.TraceMe
          |> Task.startTask x errors
      
      member x.GetConnections(jid : JabberId) = 
          let isLocal = jid.Domainpart = myDomain
          let bareId = jid.BareId
          Log.Verb(fun () -> L "GetConnections of %A (isLocal: %O)." bareId (isLocal))
          if isLocal then 
              let resources = clientConnections.GetOrAdd(bareId, fun b -> new ConcurrentDictionary<_, _>())
              
              // Only consider completely negotiated connections (others could deadlock or take a long time to be available)
              let cons = 
  
negative.code:         member x.ClientDisconnected = x.ClientDisconnected
          
          member x.RegisterIncommingConnection (xmppClient) = x.RegisterIncommingConnection(xmppClient)
          member __.RegisterOutgoingConnection _ = ()
          member x.GetConnections jid = x.GetConnections jid
          member x.Shutdown force = x.Shutdown force
  