private SimulationHandle getRemoteHandle(Host host) throws CommunicationException {
        ArgumentCheck.checkNotNull(host, "Cannot retrieve a SimulationHandle for a null host.");

        String[] simulationHandleID = SimulationHandleHelper.id().split(":");
        String corbaloc = "corbaloc:iiop:[" +
                host.getAddress().getHostAddress() + "]:" + host.getPort()
                + "/" + simulationHandleID[1];
        logger_.debug("CORBALOC: {}", corbaloc);
        org.omg.CORBA.Object object = orb_.string_to_object(corbaloc);

        SimulationHandle handle;
        try {
            handle = SimulationHandleHelper.narrow(object);
        } catch (SystemException e) {
            throw new CommunicationException(e.getCause());
        }
        return handle;
    }