private synchronized void handler(final IMessageHandler h) { onDispose.add( new Runnable() { @Override public void run() { mc.removeMessageHandler(h); } }); mc.addMessageHandler(h); }