RMI - Falha ao reconectar um cliente

Olá.

Estou implementando o algorimo de eleição em anel, usando RMI para um trabalho acadêmico.
A mesma aplicação hora se comporta como cliente, hora se comporta como servidor.

Ao inicializar o sistema o primeiro processo se conecta como servidor, e os outros como clientes.
Posso conectar N clientes, que tudo funcionando direito.

Porém, ao fechar um processo cliente para simular um crash nele, não consigo conectar mais nenhum cliente ao servidor.

Recebo a seguinte exceção:

[quote]RemoteException occurred in server thread; nested exception is:
java.rmi.ConnectException: Connection refused to host: 10.0.0.101; nested exception is:
java.net.ConnectException: Connection refused: connect[/quote]

Aqui segue o código, a função chamada primeiro é a joinAsCoordinator, se cair em uma das exceptions, então conecta como cliente (connect2Coordinator()):

[code]
public void joinAsCoordinator() {
try {
LocateRegistry.createRegistry(PORT);
} catch (RemoteException ex) {
try {
LocateRegistry.getRegistry(PORT);
} catch (RemoteException ex1) {
System.out.println(“Não foi possivel obter um registry.”);
}
}

    try {
        myModule = new RMIModuleCoordinator("0");
        Naming.bind("rmi://localhost:1099/Services", (RMIModuleCoordinator) myModule);
    } catch (AlreadyBoundException ex) {
        connect2Coordinator();
        return;
    } catch (MalformedURLException ex) {
        connect2Coordinator();
        return;
    } catch (RemoteException ex) {
        connect2Coordinator();
        return;
    }
}

public void connect2Coordinator() {
    try {
        myModule = new RMIModuleClient(nameTextField.getText());
        services = (CoordinatorServices) Naming.lookup("rmi://localhost:1099/Services");
    } catch (NotBoundException ex1) {
        System.out.println("A: " + ex1.getMessage());
        return;
    } catch (MalformedURLException ex1) {
        System.out.println("B: " + ex1.getMessage());
        return;
    } catch (RemoteException ex1) {
        System.out.println("C: " + ex1.getMessage());
        return;
    }
    nameLabel.setText("Nome: " + String.valueOf(nome));
}[/code]

Após eu finalizar um cliente, quando tento conectar outro cai na RemoteException da função connect2Coordinator.

Alguém pode me ajudar por favor ?

Obrigado