private void localClientAdded( Client client ) {
        if ( ! isProxiedClient( client ) ) {
            return;
        }

        // Register a proxy for the new local client on all the remote hubs
        // in the bridge.
        Metadata meta = getProxyMetadata( client );
        Subscriptions subs = getProxySubscriptions( client );
        HubConnection[] proxyConnections = new HubConnection[ nRemote_ ];
        connectionMap_.put( client.getId(), proxyConnections );
        for ( int ir = 0; ir < nRemote_; ir++ ) {
            ProxyManager remoteManager = remoteManagers_[ ir ];
            try {

                // This synchronization is here so that the isProxy method
                // can work reliably.  isProxy may ask whether a client seen
                // on a remote hub is a proxy controlled by this one.
                // It can only ask after the registration has been done,
                // and the determination is synchronized on connectionMap_.
                // By synchronizing here, we can ensure that it can't ask
                // after the registration, but before the information has
                // been recorded in the connectionMap.
                final HubConnection proxyConnection;
                synchronized ( connectionMap_ ) {
                    proxyConnection = remoteManager.getProfile().register();
                    if ( proxyConnection != null ) {
                        CallableClient callable = 
                            new ProxyCallableClient( client, proxyConnection,
                                                     remoteManager );
                        proxyConnection.setCallable( callable );
                        proxyConnections[ ir ] = proxyConnection;
                    }
                }
                if ( proxyConnection != null ) {
                    if ( meta != null ) {
                        try {
                            proxyConnection.declareMetadata( meta );
                        }
                        catch ( SampException e ) {
                            logger_.warning( "proxy declareMetadata failed for "
                                           + client );
                        }
                    }
                    if ( subs != null ) {
                        try {
                            proxyConnection.declareSubscriptions( subs );
                        }
                        catch ( SampException e ) {
                            logger_.warning( "proxy declareSubscriptions failed"
                                           + " for " + client );
                        }
                    }
                }
            }
            catch ( SampException e ) {
                logger_.warning( "proxy registration failed for " + client );
            }
        }
    }