diff --git a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc
index a97a0e60791cf4371e3c7f361495f5378688dd7c..b1edba6bf94b3ae478bd79d66ad38e51fb1e6a7b 100644
--- a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc
+++ b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc
@@ -107,10 +107,11 @@ ObservationControl::ObservationControl(const string&	cntlrName) :
 	itsProcessType   = globalParameterSet()->getString("Observation.processType", "Observation");
 
 	// Values from my conf file
-	itsLateLimit     = globalParameterSet()->getTime  ("ObservationControl.lateLimit", 15);
-	itsFailedLimit   = globalParameterSet()->getTime  ("ObservationControl.failedLimit", 30);
-	itsHeartBeatItv	 = globalParameterSet()->getTime  ("ObservationControl.heartbeatInterval", 10);
-	string reportType= globalParameterSet()->getString("ObservationControl.reportType", "Full");
+	itsLateLimit       = globalParameterSet()->getTime  ("ObservationControl.lateLimit", 15);
+	itsFailedLimit     = globalParameterSet()->getTime  ("ObservationControl.failedLimit", 30);
+	itsHeartBeatItv	   = globalParameterSet()->getTime  ("ObservationControl.heartbeatInterval", 10);
+	itsFinalStateDelay = globalParameterSet()->getTime  ("ObservationControl.finalStateDelay", 10);
+	string reportType  = globalParameterSet()->getString("ObservationControl.reportType", "Full");
 	if 		(reportType == "Full")		itsFullReport = true;
 	else if (reportType == "Changes")	itsChangeReport = true;
 
@@ -655,6 +656,8 @@ GCFEvent::TResult ObservationControl::finishing_state(GCFEvent& 		event,
 		setState(CTState::QUITED);
 
 		// inform MACScheduler we are going down
+		LOG_INFO_STR("Waiting " << itsFinalStateDelay << " seconds before reporting final state...");
+		sleep (itsFinalStateDelay);
 		CONTROLQuitedEvent	msg;
 		msg.cntlrName = getName();
 		msg.result 	  = itsQuitReason;
diff --git a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.conf.in b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.conf.in
index 2a43f6f73b9846150e972423742cf3e3c7ffbeab..554b7fa92589e077632e060b9b6eb0d1160d5f47 100644
--- a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.conf.in
+++ b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.conf.in
@@ -28,3 +28,7 @@ ObservationControl.reportType = Full
 #
 ObservationControl.emergencyTimeout = 1h
 
+#
+# Delay before reporting FINAL state to MACScheduler
+#
+ObservationControl.finalStateDelay = 10s
diff --git a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.h b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.h
index f795f23e6de670adc9dd49e2806ebd547b45e84f..6a6192c1839eb03e20e771b8efd23b0f3c3e43bb 100644
--- a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.h
+++ b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.h
@@ -171,6 +171,7 @@ private:
 	uint32					itsTreeID;
 	uint32					itsHeartBeatItv;
 	uint32					itsForcedQuitDelay;
+	uint32					itsFinalStateDelay;
 	uint32					itsClaimPeriod;
 	uint32					itsPreparePeriod;
 	int32					itsLateLimit;		// after how many seconds a requested state should have been reached.