private void awaitAsyncExecution(Future<?> async) throws ProcessExecutionException {

		try {
			async.get();
		} catch (ExecutionException ex) {
			// thread returned an exception
			if (ex.getCause() instanceof ProcessExecutionException) {
				throw (ProcessExecutionException) ex.getCause();
			}
		} catch (Exception ex) {
			throw new ProcessExecutionException(this, ex);
		}
	}