diff --git a/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java b/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java index 7ec94cb56..9f5a59b5c 100644 --- a/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java @@ -2123,10 +2123,20 @@ public void registerMethodProcessor(String method, processors = new LinkedList(); methodProcessors.put(method, processors); } - if (processors.contains(methodProcessor) == false) + else { - processors.add(methodProcessor); + Class methodProcessorClass = methodProcessor.getClass(); + for (Iterator processorIter = + processors.iterator(); processorIter.hasNext();) + { + if (processorIter.next().getClass() + .equals(methodProcessorClass)) + { + processorIter.remove(); + } + } } + processors.add(methodProcessor); } /**