diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 3cb212d9f6178abe30352a844f93b77a6848a464..ec9c5df5eeb6f5ff4382cc5e67558c52d5964195 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -1231,7 +1231,7 @@ module OneM2M_Functions {
 						
 						v_request.from_ := f_getOriginator(vc_resourcesIndexToBeDeleted[i]);
 
-						f_send(e_mca_port, m_request(v_request));
+						f_send(e_mca_port, m_request(v_request), false);
 						
 						tc_ac.start;
 						alt {
@@ -1298,6 +1298,7 @@ module OneM2M_Functions {
 				var integer v_resourceIndex := -1;
 				var URIList v_childResourceRefs;
 				var XSD.ID v_resourceAddress;
+				var MsgIn v_msgIn;
 				var RequestPrimitive v_request;
 				var boolean v_deregistrationPerformed := false;
 				var template UtTriggerPrimitive v_utRequest := m_utDelete;
@@ -1323,7 +1324,7 @@ module OneM2M_Functions {
 			
 						v_request := valueof(m_delete(v_resourceAddress, f_getOriginator(v_resourceIndex, vc_testSystemRole)));
 
-						f_send(e_mcc_port, m_request(v_request));
+						f_send(e_mcc_port, m_request(v_request), false);
 			
 						tc_ac.start;
 						alt {
@@ -1353,7 +1354,7 @@ module OneM2M_Functions {
 								//v_request := valueof(m_delete(v_childResourceRefs[0], f_getOriginator(vc_remoteCseIndex)));
 								v_request := valueof(m_delete(v_childResourceRefs[0]));//TODO Originator super user to be replaced by CSE1_ID (line above)
 								
-								f_send(e_mcc_port, m_request(v_request));
+								f_send(e_mcc_port, m_request(v_request), false);
 	
 								tc_ac.start;
 								alt {
@@ -1381,9 +1382,9 @@ module OneM2M_Functions {
 								
 								tc_ac.start;
 								alt {
-									[] mccPortIn.receive(mw_request(mw_delete(f_getLocalResourceAddress(vc_localRemoteCseIndex)))) -> value vc_request {
+									[] mccPortIn.receive(mw_request(mw_delete(f_getLocalResourceAddress(vc_localRemoteCseIndex)))) -> value v_msgIn {
 										tc_ac.stop;
-										f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive);
+										f_processDeleteRequestPrimitive(v_msgIn.primitive.requestPrimitive);
 										f_send(e_mcc_in_port, m_response(vc_response.primitive.responsePrimitive));
 										log(__SCOPE__&": INFO: Deregistration performed successfully");
 									}
@@ -1572,15 +1573,16 @@ module OneM2M_Functions {
 			 * @verdict 
 			 */
 			function f_cse_retrieveResource(integer p_resourceIndex) runs on AeSimu return PrimitiveContent{
-
-				f_send(e_mca_port, m_request(m_retrieve(f_getResourceAddress(p_resourceIndex), f_getOriginator(p_resourceIndex))));
+				var MsgIn v_retrievedResponse;
+				
+				f_send(e_mca_port, m_request(m_retrieve(f_getResourceAddress(p_resourceIndex), f_getOriginator(p_resourceIndex))), false);
 				tc_ac.start;
 				alt {
-					[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+					[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_retrievedResponse {
 						tc_ac.stop;
 						setverdict(pass, __SCOPE__&":INFO: Resource retrieved successfuly");
 					}
-					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
 						tc_ac.stop;
 						setverdict(inconc, __SCOPE__&":INFO: Error while retrieving resource");
 					}
@@ -1591,7 +1593,7 @@ module OneM2M_Functions {
 				
 				f_checkAeSimuStatus();
 				
-				return vc_response.primitive.responsePrimitive.primitiveContent;
+				return v_retrievedResponse.primitive.responsePrimitive.primitiveContent;
 				
 			}// end f_cse_retrieveResource	
 			
@@ -3617,7 +3619,7 @@ module OneM2M_Functions {
 
 					//Send response in any case
 					v_response := valueof(m_responseNotification(int2000, omit));
-					v_response.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier;
+					v_response.requestIdentifier := v_request.primitive.requestPrimitive.requestIdentifier;
 					f_send(e_mca_in_port, m_response(v_response));
 					repeat;
 				}
@@ -3626,7 +3628,7 @@ module OneM2M_Functions {
 
 					//Send response in any case
 					v_response := valueof(m_responseNotification(int2000, omit));
-					v_response.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier;
+					v_response.requestIdentifier := v_request.primitive.requestPrimitive.requestIdentifier;
 					f_send(e_mca_in_port, m_response(v_response));
 					repeat;
 				}
@@ -5992,7 +5994,8 @@ module OneM2M_Functions {
 		
 		function f_send(
 		                in InterfaceIds p_interfaceIds, 
-		                in template MsgOut p_msgOut
+		                in template MsgOut p_msgOut,
+		                in boolean p_storingRequest := true
 		) runs on Tester {
             log(">>> f_send: ", p_interfaceIds);
 			
@@ -6002,7 +6005,9 @@ module OneM2M_Functions {
 			log("f_send: protocolBinding=", p_msgOut.protocolBinding);
 			if(ischosen(p_msgOut.primitive.requestPrimitive)){
 				p_msgOut.primitive.requestPrimitive.requestIdentifier := valueof(p_msgOut.primitive.requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-				vc_request.primitive.requestPrimitive := valueof(p_msgOut.primitive.requestPrimitive);
+				if(p_storingRequest){
+					vc_request.primitive.requestPrimitive := valueof(p_msgOut.primitive.requestPrimitive);
+				}
 			}
 			if(not(vc_componentRegistered)) {
 				if(valueof(p_msgOut.protocolBinding) == "MQTT") {
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index b6b78739a2abc7f7a6628c48d4cee6bcf1e1163c..a53e93702f2ca2b3e2a71a0618ded0665c8889a0 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -5949,6 +5949,7 @@ module OneM2M_PermutationFunctions {
 					function f_CSE_DMR_UPD_016(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem {
 						 //Local variables
 						 var MsgIn v_response;
+						 var MsgIn v_msgIn;
 						 var RequestPrimitive v_request;
 						 var ResponsePrimitive v_responsePrimitive;
 						 var integer v_aeIndex := -1;
@@ -6027,11 +6028,11 @@ module OneM2M_PermutationFunctions {
 								tc_ac.stop;
 								setverdict(fail, __SCOPE__ & ": Error while updating mandatory attribute");
 							}
-							[] mcaPortIn.receive(mw_request(mw_notifyNotification(mw_contentNotificationVerification))) -> value vc_request {
+							[] mcaPortIn.receive(mw_request(mw_notifyNotification(mw_contentNotificationVerification))) -> value v_msgIn {
 								tc_ac.stop;
 								setverdict(pass, __SCOPE__ & ":INFO: Notification for Subscription verification received");
 								v_responsePrimitive := valueof(m_responseNotification(int2000, omit));
-								v_responsePrimitive.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier;
+								v_responsePrimitive.requestIdentifier := v_msgIn.primitive.requestPrimitive.requestIdentifier;
 								f_send(e_mca_in_port, m_response(v_responsePrimitive));
 								tc_ac.start;
 								repeat;