@Override
			public Object invoke(final Object proxy, final Method method,
					final Object[] args) throws Throwable {
				if (IOHandler.this.master.isInterrupted()
						&& !method.equals(this.interruptMethod)) {
					if (Thread.currentThread() != IOHandler.this.master) {
						throw new InterruptedException();
					}
					return null;
				}
				if (IOHandler.this.guiReal == null) {
					return null;
				}
				return method.invoke(IOHandler.this.guiReal, args);
			}