code: @Override
      public void unlisten(final Component<?> linkedObject, final WaveType... waveTypes) throws JRebirthThreadException {
  
          JRebirth.checkJIT();
  
          // For each given wave type, remove linked Object to avoid calling them anymore
          for (final WaveType waveType : waveTypes) {
              WaveSubscription ws;
  
              if (this.notifierMap.containsKey(waveType)) {
  
                  // Retrieve the list of linked object associated to this Wave Type
                  ws = this.notifierMap.get(waveType);
  
                  // When the linkedObject is removed stop the iteration
                  boolean removed = false;
                  // Remove the linked object to unregister it
                  for (int i = ws.getWaveHandlers().size() - 1; !removed && i >= 0; i--) {
                      if (ws.getWaveHandlers().get(i).getWaveReady().equals(linkedObject)) {
                          ws.getWaveHandlers().remove(i);
                          removed = true;
                      }
                  }
  
                  // Remove the Wave Type from the map if there isn't any linked object left
                  if (ws.getWaveHandlers().isEmpty()) {
                      this.notifierMap.remove(waveType);
                  }
              }
          }
      }
docs: {@inheritDoc}