Deserializer getMessageDeserializer2(Data reply, String expectedMessageType)
			throws RequestException, ConfigurationTaskException, ConfigurationChangeException {
		String messageType = reply.getTextValue("nachrichtenTyp").getValueText();
		final byte[] message = reply.getScaledArray("daten").getByteArray();
		final Deserializer deserializer;
		try {
			deserializer = SerializingFactory.createDeserializer(2, new ByteArrayInputStream(message));
		}
		catch(NoSuchVersionException e) {
			throw new RequestException(e);
		}
		if(messageType.equals(expectedMessageType)) {
			return deserializer;
		}
		else if(messageType.equals("FehlerAntwort")) {
			try {
				String errorMessage = deserializer.readString();
				throw new RequestException(errorMessage);
			}
			catch(IOException e) {
				throw new RequestException("fehlerhafte FehlerAntwort empfangen");
			}
		}
		else if("KonfigurationsänderungVerweigert".equals(messageType)) {
			// Die Konfiguration verweigert nur den Auftrag, weil diverse Randbediengungen nicht erfüllt sind.
			try {
				final String reason = deserializer.readString();
				throw new ConfigurationChangeException(reason);
			}
			catch(IOException e) {
				// Die Antwort konnte nicht entschlüsselt werden
				throw new RequestException(
						"Die Konfiguration verweigert die Ausführung einer Konfigurationsänderung, aber der Grund konnte nicht entschlüsselt werden: " + e
				);
			}
		}
		else if("KonfigurationsauftragVerweigert".equals(messageType)) {
			// Die Konfiguration verweigert nur den Auftrag, weil diverse Randbediengungen nicht erfüllt sind.
			try {
				final String reason = deserializer.readString();
				throw new ConfigurationTaskException(reason);
			}
			catch(IOException e) {
				// Die Antwort konnte nicht entschlüsselt werden
				throw new RequestException(
						"Die Konfiguration verweigert die Ausführung eines Auftrages, aber der Grund konnte nicht entschlüsselt werden: " + e
				);
			}
		}
		else {
			throw new RequestException("falsche Antwort empfangen: " + messageType);
		}
	}