diff --git a/test/Services/RealTimeForwardingControl.cpp b/test/Services/RealTimeForwardingControl.cpp
index ee3aa446cb14ab715bddfc46a4004e42e89ab5fa..54bf4b94111f332c59b5f59644c73ce19474bc86 100644
--- a/test/Services/RealTimeForwardingControl.cpp
+++ b/test/Services/RealTimeForwardingControl.cpp
@@ -99,6 +99,35 @@ void allReportsOfService(Message& request) {
 	}
 }
 
+void allReportsOfServiceCombined(Message& request) {
+	uint8_t numOfApplications = 3;
+	uint8_t numOfMessagesPerService = 2;
+
+	uint8_t applications2[] = {1, 2, 3};
+	request.appendUint8(numOfApplications);
+
+	for (uint8_t i = 0; i < numOfApplications; i++) {
+		request.appendUint8(applications2[i]);
+		uint8_t numOfServicesPerApp = (i == 0) ? 17 : 2;
+		uint8_t* servicesToPick = (i == 0) ? redundantServices : services;
+		request.appendUint8(numOfServicesPerApp);
+
+		for (uint8_t j = 0; j < numOfServicesPerApp; j++) {
+			uint8_t serviceType = servicesToPick[j];
+			request.appendUint8(serviceType);
+			uint8_t numOfMessages = (i == 0 or i == 1) ? 0 : numOfMessagesPerService;
+			request.appendUint8(numOfMessages);
+			if (i >= 2) {
+				uint8_t* messages = (j == 0) ? messages1 : messages2;
+
+				for (uint8_t k = 0; k < numOfMessagesPerService; k++) {
+					request.appendUint8(messages[k]);
+				}
+			}
+		}
+	}
+}
+
 void resetAppProcessConfiguration() {
 	realTimeForwarding.applicationProcessConfiguration.definitions.clear();
 	REQUIRE(realTimeForwarding.applicationProcessConfiguration.definitions.empty());
@@ -357,8 +386,9 @@ TEST_CASE("Add report types to the Application Process Configuration") {
 		CHECK(ServiceTests::count() == 0);
 		auto& applicationProcesses = realTimeForwarding.applicationProcessConfiguration.definitions;
 		REQUIRE(applicationProcesses[applicationID1].size() == 2);
-		for (auto serviceType: services) {
-			REQUIRE(applicationProcesses[applicationID1].find(serviceType) != applicationProcesses[applicationID1].end());
+		for (auto serviceType : services) {
+			REQUIRE(applicationProcesses[applicationID1].find(serviceType) !=
+			        applicationProcesses[applicationID1].end());
 			REQUIRE(applicationProcesses[applicationID1][serviceType].empty());
 		}
 
@@ -366,4 +396,35 @@ TEST_CASE("Add report types to the Application Process Configuration") {
 		ServiceTests::reset();
 		Services.reset();
 	}
+
+	SECTION("Addition of all report types, combined invalid requests") {
+		Message request(RealTimeForwardingControlService::ServiceType,
+		                RealTimeForwardingControlService::MessageType::AddReportTypesToAppProcessConfiguration,
+		                Message::TC, 1);
+		uint8_t applicationID1 = 1;
+		uint8_t applicationID2 = 2;
+		realTimeForwarding.controlledApplications.push_back(applicationID1);
+		realTimeForwarding.controlledApplications.push_back(applicationID2);
+		allReportsOfServiceCombined(request);
+
+		MessageParser::execute(request);
+
+		CHECK(ServiceTests::count() == 3);
+		CHECK(ServiceTests::countThrownErrors(ErrorHandler::ExecutionStartErrorType::NotControlledApplication) == 1);
+		CHECK(ServiceTests::countThrownErrors(ErrorHandler::ExecutionStartErrorType::MaxServiceTypesReached) == 2);
+		auto& applicationProcesses = realTimeForwarding.applicationProcessConfiguration.definitions;
+		REQUIRE(applicationProcesses.size() == 2);
+		REQUIRE(applicationProcesses[applicationID1].size() == 15);
+		REQUIRE(applicationProcesses[applicationID2].size() == 2);
+		for (auto& serviceType: applicationProcesses[applicationID1]) {
+			REQUIRE(serviceType.second.empty());
+		}
+		for (auto& serviceType: applicationProcesses[applicationID2]) {
+			REQUIRE(serviceType.second.empty());
+		}
+
+		resetAppProcessConfiguration();
+		ServiceTests::reset();
+		Services.reset();
+	}
 }