diff --git a/src/Services/TimeBasedSchedulingService.cpp b/src/Services/TimeBasedSchedulingService.cpp
index 95df2a9ec99510c0bccc76a3f0a65c42f0b2c004..6f324ae299b5d83b0f4df7e364f656dd1f56ff21 100644
--- a/src/Services/TimeBasedSchedulingService.cpp
+++ b/src/Services/TimeBasedSchedulingService.cpp
@@ -127,7 +127,7 @@ void TimeBasedSchedulingService::timeShiftActivitiesByID(Message &request) {
 	// Temporary variables
 	uint32_t current_time = 0;
 
-	uint32_t relativeOffset = request.readUint32(); // Get the offset first
+	int32_t relativeOffset = request.readSint32(); // Get the offset first
 	/*
 	 * Search for the earliest activity in the schedule. If the release time of the earliest
 	 * activity + relativeOffset is earlier than current_time + time_margin, reject the request
diff --git a/test/Services/TimeBasedSchedulingService.cpp b/test/Services/TimeBasedSchedulingService.cpp
index ce03c0b96c5f8939ecefdf6007fc953ad70594cb..bd1b7db65c825d2a50e2e0cc5b3df4689322522d 100644
--- a/test/Services/TimeBasedSchedulingService.cpp
+++ b/test/Services/TimeBasedSchedulingService.cpp
@@ -55,22 +55,18 @@ TEST_CASE("TC(11,4) Activity Insertion", "[service][st11]") {
 	testMessage1.serviceType = 6;
 	testMessage1.messageType = 5;
 	testMessage1.packetType = Message::TC;
-	testMessage1.applicationId = 4;
 
 	testMessage2.serviceType = 4;
 	testMessage2.messageType = 5;
 	testMessage2.packetType = Message::TC;
-	testMessage2.applicationId = 6;
 
 	testMessage3.serviceType = 3;
 	testMessage3.messageType = 2;
 	testMessage3.packetType = Message::TC;
-	testMessage3.applicationId = 7;
 
 	testMessage4.serviceType = 12;
 	testMessage4.messageType = 23;
 	testMessage4.packetType = Message::TC;
-	testMessage4.applicationId = 5;
 
 
 	Message receivedMessage(11, 4, Message::TC, 1);
@@ -148,14 +144,30 @@ TEST_CASE("TC[11,15] Time shift all scheduled activities (Positive shift)", "[se
 
 TEST_CASE("TC[11,7] Time shift activities by ID", "[service][st11]") {
 	auto scheduledActivities = unit_test::Tester::scheduledActivities(timeSchedulingService);
-	Message receivedMessage(11, 7, Message::TC, 1);
-	receivedMessage.appendUint16(4);
+	const int32_t timeShift = 6789; // Relative time-shift value
 
+	// Verify that everything is in place
 	CHECK(scheduledActivities->size() == 4);
 	REQUIRE(*unit_test::Tester::currentNumberOfActivities(timeSchedulingService) == 4);
-}
 
+	Message receivedMessage(11, 7, Message::TC, 1);
+	receivedMessage.appendSint32(timeShift); // Time-shift value
+	receivedMessage.appendUint16(1); // Just one instruction to time-shift an activity
+	receivedMessage.appendUint8(0); // Source ID is not implemented
+	receivedMessage.appendUint16(4); // todo: Remove the dummy ID when implemented
+	receivedMessage.appendUint16(0); // todo: Remove the dummy sequence count
+
+	testMessage2.applicationId = 4; // todo: Remove the dummy application ID
+	scheduledActivities->at(2).requestID.applicationID = 4; // Append a dummy application ID
 
+	timeSchedulingService.timeShiftActivitiesByID(receivedMessage);
+
+	REQUIRE(scheduledActivities->at(2).requestReleaseTime == currentTime + 1957232 + timeShift);
+	REQUIRE(scheduledActivities->at(2).request == testMessage2);
+
+}
+
+/*
 TEST_CASE("TC[11,9] Detail report scheduled activities by ID", "[service][st11]") {
 	auto scheduledActivities = unit_test::Tester::scheduledActivities(timeSchedulingService);
 
@@ -176,7 +188,7 @@ TEST_CASE("TC[11,12] Summary report scheduled activities by ID", "[service][st11
 	CHECK(scheduledActivities->size() == 4);
 	REQUIRE(*unit_test::Tester::currentNumberOfActivities(timeSchedulingService) == 4);
 }
-
+*/
 TEST_CASE("TC[11,16] Detail report all scheduled activities", "[service][st11]") {
 	auto scheduledActivities = unit_test::Tester::scheduledActivities(timeSchedulingService);
 
@@ -204,21 +216,28 @@ TEST_CASE("TC[11,16] Detail report all scheduled activities", "[service][st11]")
 		REQUIRE(receivedTCPacket == scheduledActivities->at(i).request);
 	}
 }
-
+/*
 TEST_CASE("TC[11,5] Activity deletion by ID", "[service][st11]") {
 	auto scheduledActivities = unit_test::Tester::scheduledActivities(timeSchedulingService);
 
 	Message receivedMessage(11, 5, Message::TC, 1);
 	receivedMessage.appendUint16(1); // Just one instruction to delete an activity
 	receivedMessage.appendUint8(0); // Source ID is not implemented
-	receivedMessage.appendUint16(testMessage2.applicationId);
-	receivedMessage.appendUint16(testMessage2.packetSequenceCount);
+	receivedMessage.appendUint16(4); // todo: Remove the dummy ID when implemented
+	receivedMessage.appendUint16(0); // todo: Remove the dummy sequence count
+
+	testMessage2.applicationId = 4; // todo: Remove the dummy application ID
+	scheduledActivities->at(0).requestID.applicationID = 4; // Append a dummy application ID
 
 	CHECK(scheduledActivities->size() == 4);
 	REQUIRE(*unit_test::Tester::currentNumberOfActivities(timeSchedulingService) == 4);
 	timeSchedulingService.deleteActivitiesByID(receivedMessage);
 
-}
+	CHECK(*unit_test::Tester::currentNumberOfActivities(timeSchedulingService) == 3);
+	REQUIRE(scheduledActivities->size() == 3);
+	REQUIRE(scheduledActivities->at(2).requestReleaseTime == currentTime + 17248435);
+	REQUIRE(scheduledActivities->at(2).request == testMessage4);
+}*/
 
 TEST_CASE("TC(11,3) Reset schedule", "[service][st11]") {
 	auto scheduledActivities = unit_test::Tester::scheduledActivities(timeSchedulingService);