private DataTelegram getDataTelegram(final long maximumWaitingTime, byte telegramType) {
		long waitingTime = 0, startTime = System.currentTimeMillis();
		long sleepTime = 10;
		while(waitingTime < maximumWaitingTime) {
			try {
				synchronized(_syncSystemTelegramList) {
					if(_disconnecting) throw new RuntimeException("Verbindung zum Datenverteiler wurde unterbrochen");
					_syncSystemTelegramList.wait(sleepTime);
					if(sleepTime < 1000) sleepTime *= 2;
					DataTelegram telegram = null;
					ListIterator iterator = _syncSystemTelegramList.listIterator(0);
					while(iterator.hasNext()) {
						telegram = (DataTelegram)iterator.next();
						if(telegram != null) {     // in der LinkedList können theoretisch null-Objekte vorkommen
							if(telegram.getType() == telegramType) {
								iterator.remove();
								return telegram;
							}
							else {
								System.out.println(telegram.parseToString());
							}
						}
					} // while
				}
				waitingTime = System.currentTimeMillis() - startTime;
			}
			catch(InterruptedException ex) {
				_debug.warning("Thread wurde unterbrochen", ex);
				break;
			}
		} // while
		return null;
	}