public void register_fall_back (Client client) {
    if (client.register == -1) return;
    Client fall_back = null;

    if (client.class_hint != null)
      for (Iterator it=clients.iterator (); it.hasNext ();) {
        Client c = (Client) it.next ();

        if (c != client           // another!
          && c.class_hint.equals (client.class_hint)
          && !c.early_unmapped && !c.early_destroyed) {
        
          fall_back = c;
          break;
        }
      }

    registers [client.register] = fall_back;
    client.register = -1;
  }