diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 68b138ce26c4217731f791a1f838ff03d9f48c01..a40d5476b139195112fffd83f280c066ce3b8fe9 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -45,8 +45,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_aeSimuDesc.mcaPort, vc_aeSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
      	 	
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
 			
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf01());
@@ -86,8 +86,8 @@ module OneM2M_Functions {
 	
 			f_setProtocolBinding(vc_aeSimuDesc.mcaPort, vc_aeSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
 		    
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
       
 			//Initialze the IUT
 							
@@ -119,8 +119,8 @@ module OneM2M_Functions {
 
 			f_setProtocolBinding(vc_aeSimuDesc.mcaPort, vc_aeSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
 		    
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
 		      
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf02_ae1());
@@ -158,8 +158,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_cseSimuDesc.mccPort, vc_cseSimuDesc.mccPortIn, v_binding, v_host, v_binding_in);
 		    
-		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
-		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding, vc_cseSimuDesc.mccPortIn.serialization };
+		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { e_mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
+		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { e_mccPortIn, v_host, v_binding, vc_cseSimuDesc.mccPortIn.serialization };
 		      
 			v_cSEBaseResource := f_generateLocalResource(m_primitiveContentCSEBase(m_contentCSEBase(vc_cseSimuDesc)), -1, int5);
 			vc_cSEBaseIndex := f_setLocalResource(v_cSEBaseResource, int5, -1);
@@ -200,8 +200,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_cseSimuDesc.mccPort, vc_cseSimuDesc.mccPortIn, v_binding, v_host, v_binding_in);
       
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding_in, vc_cseSimuDesc.mccPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { e_mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { e_mccPortIn, v_host, v_binding_in, vc_cseSimuDesc.mccPortIn.serialization };
 			
 			activate(a_default());
 			vc_cseSimu := activate(a_cse_cf02_cse1());
@@ -251,8 +251,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_cseSimuDesc.mccPort, vc_cseSimuDesc.mccPortIn, v_binding, v_host, v_binding_in);
       
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding_in, vc_cseSimuDesc.mccPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { e_mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { e_mccPortIn, v_host, v_binding_in, vc_cseSimuDesc.mccPortIn.serialization };
 				 
 			activate(a_default());
 			vc_cseSimu := activate(a_cse_cf02_cse1());
@@ -281,8 +281,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_aeSimuDesc.mcaPort, vc_aeSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
       
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
       
 			//Initialze the IUT
 							
@@ -316,8 +316,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_cseSimuDesc.mcaPort, vc_cseSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
       		
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_cseSimuDesc.mcaPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_cseSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_cseSimuDesc.mcaPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_cseSimuDesc.mcaPortIn.serialization };
 			
 			if(PX_UT_IMPLEMENTED) {
 				map(self:utPort, system:utPort) param (PX_TS_UT);
@@ -363,8 +363,8 @@ module OneM2M_Functions {
 	
 			f_setProtocolBinding(vc_cseSimuDesc.mcaPort, vc_cseSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
 		    
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_cseSimuDesc.mcaPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding, vc_cseSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_cseSimuDesc.mcaPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding, vc_cseSimuDesc.mcaPortIn.serialization };
       
 			v_cSEBaseResource := f_generateLocalResource(m_primitiveContentCSEBase(m_contentCSEBase(vc_cseSimuDesc)), -1, int5);
 			vc_cSEBaseIndex := f_setLocalResource(v_cSEBaseResource, int5, -1);
@@ -402,8 +402,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_cseSimuDesc.mccPort, vc_cseSimuDesc.mccPortIn, v_binding, v_host, v_binding_in);
       
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding_in, vc_cseSimuDesc.mccPortIn.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { e_mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { e_mccPortIn, v_host, v_binding_in, vc_cseSimuDesc.mccPortIn.serialization };
       
       		activate(a_default());
 			vc_cseSimu := activate(a_cse_cf04());
@@ -448,8 +448,8 @@ module OneM2M_Functions {
 						
 			f_setProtocolBinding(vc_cseSimuDesc.mccPort, vc_cseSimuDesc.mccPortIn, v_binding, v_host, v_binding_in);
             
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding, vc_cseSimuDesc.mccPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { e_mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { e_mccPortIn, v_host, v_binding, vc_cseSimuDesc.mccPortIn.serialization };
       
 			v_cSEBaseResource := f_generateLocalResource(m_primitiveContentCSEBase(m_contentCSEBase(vc_cseSimuDesc)), -1, int5);
 			vc_cSEBaseIndex := f_setLocalResource(v_cSEBaseResource, int5, -1);
@@ -508,8 +508,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_aeSimuDesc.mcaPort, vc_aeSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
 			
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
 			
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf06_ae1()); 
@@ -543,8 +543,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_dasSimuDesc.mcaPort, vc_dasSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
 
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_dasSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_dasSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_dasSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_dasSimuDesc.mcaPortIn.serialization };
 			
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf06_das()); 
@@ -571,8 +571,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_dasSimuDesc.mcaPort, vc_dasSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
 
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_dasSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_dasSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_dasSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_dasSimuDesc.mcaPortIn.serialization };
 			
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf06_das()); 
@@ -609,8 +609,8 @@ module OneM2M_Functions {
 		
 			f_setProtocolBinding(vc_aeSimuDesc.mcaPort, vc_aeSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
      	 	
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
       
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf06_ae1()); 
@@ -644,8 +644,8 @@ module OneM2M_Functions {
 
 			f_setProtocolBinding(vc_cseSimuDesc.mcaPort, vc_cseSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
      	 	
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_cseSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_cseSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_cseSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_cseSimuDesc.mcaPortIn.serialization };
 
 			if(PX_UT_IMPLEMENTED) {
 			  map(self:utPort, system:utPort) param (PX_TS_UT);
@@ -1644,7 +1644,7 @@ module OneM2M_Functions {
 						
 						v_request.from_ := f_getOriginator(vc_resourcesIndexToBeDeleted[i]);
 
-						f_send(e_mcaPort, m_request(v_request));
+						f_send(e_mcaPort, m_request(v_request), false);
 						
 						tc_ac.start;
 						alt {
@@ -1732,6 +1732,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;
@@ -1783,7 +1784,7 @@ module OneM2M_Functions {
 			
 						v_request := valueof(m_delete(v_resourceAddress, f_getOriginator(v_resourceIndex, vc_testSystemRole)));
 
-						f_send(e_mccPort, m_request(v_request));
+						f_send(e_mccPort, m_request(v_request), false);
 			
 						tc_ac.start;
 						alt {
@@ -1813,7 +1814,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_mccPort, m_request(v_request));
+								f_send(e_mccPort, m_request(v_request), false);
 	
 								tc_ac.start;
 								alt {
@@ -1841,9 +1842,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_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
 										log(__SCOPE__&": INFO: Deregistration performed successfully");
 									}
@@ -2044,6 +2045,7 @@ module OneM2M_Functions {
 			function f_cse_retrieveResource(integer p_resourceIndex, in template(omit) XSD.ID p_virtualResource := omit) runs on AeSimu return PrimitiveContent{
 				
 				var XSD.ID v_resourceAddress;
+				var MsgIn v_retrievedResponse;
 				
 				if(isvalue(p_virtualResource)) {
 					v_resourceAddress := f_getResourceAddress(p_resourceIndex) & "/" & valueof(p_virtualResource);
@@ -2051,14 +2053,14 @@ module OneM2M_Functions {
 					v_resourceAddress := f_getResourceAddress(p_resourceIndex);
 				}
 
-				f_send(e_mcaPort, m_request(m_retrieve(v_resourceAddress, f_getOriginator(p_resourceIndex))));
+				f_send(e_mcaPort, m_request(m_retrieve(v_resourceAddress, 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");
 					}
@@ -2069,7 +2071,7 @@ module OneM2M_Functions {
 				
 				f_checkAeSimuStatus();
 				
-				return vc_response.primitive.responsePrimitive.primitiveContent;
+				return v_retrievedResponse.primitive.responsePrimitive.primitiveContent;
 				
 			}// end f_cse_retrieveResource	
 			
@@ -2084,6 +2086,7 @@ module OneM2M_Functions {
 			function f_cse_retrieveResourceWithRoleToken(integer p_resourceIndex, template (omit) XSD.ID p_roleResourceID := omit, template (omit) XSD.ID p_tokenResourceID := omit) runs on AeSimu return PrimitiveContent{
 
 				var template RequestPrimitive v_retrieveRequest;
+				var MsgIn v_retrievedResponse;
 				v_retrieveRequest := m_retrieve(f_getResourceAddress(p_resourceIndex), f_getOriginator(p_resourceIndex));
 				if (ispresent(p_roleResourceID)) {v_retrieveRequest.roleIDs := {p_roleResourceID};}
 				if (ispresent(p_tokenResourceID)) {v_retrieveRequest.tokenIDs := {p_tokenResourceID};}
@@ -2091,11 +2094,11 @@ module OneM2M_Functions {
 				
 				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");
 					}
@@ -2106,7 +2109,7 @@ module OneM2M_Functions {
 				
 				f_checkAeSimuStatus();
 				
-				return vc_response.primitive.responsePrimitive.primitiveContent;
+				return v_retrievedResponse.primitive.responsePrimitive.primitiveContent;
 				
 			}// end f_cse_retrieveResourceWithRole	
 			
@@ -3668,7 +3671,7 @@ module OneM2M_Functions {
 			 * @param  p_resourceType      Type of the resource to be created
 			 * @return Index of internal created resource
 			 */
-			function f_generateAndSetLocalResource(in template(omit) PrimitiveContent p_resource := omit, in integer p_parentIndex := vc_cSEBaseIndex, in ResourceType p_resourceType) runs on CseSimu return integer {
+			function f_generateAndSetLocalResource(in template(omit) PrimitiveContent p_resource := omit, in integer p_parentIndex := 0, in ResourceType p_resourceType) runs on CseSimu return Integer { //vc_cSEBaseIndex, in ResourceType p_resourceType) runs on CseSimu return Integer {
 
 				var PrimitiveContent v_localResource;
 				var integer v_localResourceIndex;
@@ -3688,7 +3691,7 @@ module OneM2M_Functions {
 			 * @param  p_resourceType      Type of the resource to be created
 			 * @return Internal created resource
 			 */
-			function f_generateLocalResource(in template(omit) PrimitiveContent p_resource := omit, in integer p_parentIndex := vc_cSEBaseIndex, in ResourceType p_resourceType) runs on CseSimu return PrimitiveContent {
+			function f_generateLocalResource(in template(omit) PrimitiveContent p_resource := omit, in integer p_parentIndex := 0, in ResourceType p_resourceType) runs on CseSimu return PrimitiveContent { //vc_cSEBaseIndex, in ResourceType p_resourceType) runs on CseSimu return PrimitiveContent {
 
 				var integer v_resourceIndex := lengthof(vc_localResourcesList);
 				var PrimitiveContent v_myResource;
@@ -4599,7 +4602,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_mcaPortIn, m_response(v_response));
 					repeat;
 				}
@@ -4608,7 +4611,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_mcaPortIn, m_response(v_response));
 					repeat;
 				}
@@ -4848,7 +4851,7 @@ module OneM2M_Functions {
 		
 		group CseSimuFunctions {
 
-			function f_ae_createPollingChannel(template UtTriggerPrimitive p_utRequest := m_utCreateAe, integer p_parentIndex := vc_cSEBaseIndex) runs on CseSimu return integer {
+			function f_ae_createPollingChannel(template UtTriggerPrimitive p_utRequest := m_utCreateAe, integer p_parentIndex := 0) runs on CseSimu return integer { //vc_cSEBaseIndex) runs on CseSimu return integer {
 				var MsgIn v_request;
 				var PrimitiveContent v_modifiedResource;
 				var integer v_resourceIndex, v_parentIndex;
@@ -5898,8 +5901,10 @@ module OneM2M_Functions {
 			        v_poa := v_poa & ":" & int2str(p_portDesc.binding.wsBindingDesc.bindingDesc.localPort);
 			    }
 			}
-			v_poa := v_poa & "/" & p_additionalContext;
-      
+			if(p_additionalContext != ""){
+				v_poa := v_poa & "/" & p_additionalContext;
+			}
+			
             return v_poa;
 		}
 		
@@ -5935,7 +5940,9 @@ module OneM2M_Functions {
 			        v_poa := v_poa & ":" & int2str(p_portDesc.binding.wsBindingDesc.bindingDesc.remotePort);
 			    }
 			}
-			v_poa := v_poa & "/" & p_additionalContext;
+			if(p_additionalContext != ""){
+				v_poa := v_poa & "/" & p_additionalContext;
+			}
 			
 			return v_poa;
 		}
@@ -6344,7 +6351,7 @@ module OneM2M_Functions {
 		 * @return Internal resource index of the saved resource
 		 * @verdict 
 		 */
-		function f_setLocalResource(PrimitiveContent p_resource, ResourceType p_resourceType, integer  p_parentIndex := vc_cSEBaseIndex) runs on CseSimu return integer {
+		function f_setLocalResource(PrimitiveContent p_resource, ResourceType p_resourceType, integer  p_parentIndex := 0) runs on CseSimu return integer { //vc_cSEBaseIndex) runs on CseSimu return integer {
 			var integer v_newIndex := -1;	
 			if(isbound(vc_localResourcesList)) {
 				vc_localResourcesList[lengthof(vc_localResourcesList)] := {p_parentIndex, p_resourceType, p_resource};
@@ -7239,7 +7246,7 @@ module OneM2M_Functions {
 						}
 					}
 					case ("MqttSetDefaultTopicToNotRegistration") {
-						acPort.send(AcRequestPrimitive:{p_event, {charstring := oct2str(unichar2oct(p_originator))}});
+						acPort.send(AcRequestPrimitive:{p_event, {charstring := oct2char(unichar2oct(valueof(p_originator)))}});
 					}
 					case ("MqttSetDefaultTopicToRegistration") {
 						acPort.send(AcRequestPrimitive:{p_event, {charstring := int2str(p_resourceIndex)}});
@@ -7591,7 +7598,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);
 			
@@ -7600,8 +7608,10 @@ module OneM2M_Functions {
 			p_msgOut.serialization := vc_myInterfaces[enum2int(p_interfaceIds)].mySerialization;
 			log("f_send: protocolBinding=", p_msgOut.protocolBinding);
 			if(ischosen(p_msgOut.primitive.requestPrimitive)){
-				p_msgOut.primitive.requestPrimitive.requestIdentifier := p_msgOut.primitive.requestPrimitive.requestIdentifier & f_rnd(1, 1000000);
-				vc_request.primitive.requestPrimitive := valueof(p_msgOut.primitive.requestPrimitive);
+				p_msgOut.primitive.requestPrimitive.requestIdentifier := valueof(p_msgOut.primitive.requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
+				if(p_storingRequest){
+					vc_request.primitive.requestPrimitive := valueof(p_msgOut.primitive.requestPrimitive);
+				}
 			}
 			if(not(vc_componentRegistered)) {
 				if(valueof(p_msgOut.protocolBinding) == "MQTT") {
@@ -7610,14 +7620,14 @@ module OneM2M_Functions {
 							if((valueof(p_msgOut.primitive.requestPrimitive.resourceType) != int2) and (valueof(p_msgOut.primitive.requestPrimitive.resourceType) != int16)){
 								//Modify default topic to publish a non-registration message
 								f_sendAcPrimitive("MqttSetDefaultTopicToNotRegistration", -1, valueof(p_msgOut.primitive.requestPrimitive.from_));
-								vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
+								f_sendWrapper(p_interfaceIds, p_msgOut);
 								f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1);
 								return;
 							}
 						} else {//RETRIEVE - UPDATE - DELETE - NOTIFY
 							//Modify default topic to publish a non-registration message
 							f_sendAcPrimitive("MqttSetDefaultTopicToNotRegistration", -1, valueof(p_msgOut.primitive.requestPrimitive.from_));
-							vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
+							f_sendWrapper(p_interfaceIds, p_msgOut);
 							f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1);
 							return;
 						}
@@ -7625,7 +7635,27 @@ module OneM2M_Functions {
 				} 
 			}
 			//TODO: Handle response to normal messages before CSE registration occurs
-			vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
+			f_sendWrapper(p_interfaceIds, p_msgOut);
+		}
+		
+		function f_sendWrapper(in InterfaceIds p_interfaceIds,in template MsgOut p_msgOut) runs on Tester {
+		
+			select (p_interfaceIds) {
+			  
+			  	case (e_mcaPort) {
+					mcaPort.send(p_msgOut);	  		
+			  	}
+			  	case (e_mcaPortIn) {
+					mcaPortIn.send(p_msgOut);	  		
+			  	}
+				case (e_mccPort) {
+					mccPort.send(p_msgOut);	  		
+			  	}
+				case (e_mccPortIn) {
+					mccPortIn.send(p_msgOut);	  		
+			  	}
+			}
+		
 		}
 		
 		/**
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index a286f81817b4197cb83646548b0e37ef983792af..9625cae8492e7f0f5b761cd3d4ef8132a126fdae 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -3627,7 +3627,7 @@ module OneM2M_Templates {
 			subscriberURI := p_subscriberURI//O
 		}; 
 		
-		template (value) EventNotificationCriteria m_eventNotificationCriteria ( in EventNotificationCriteria.notificationEventType_list p_notificationEventType_list := {}, template (omit) EventNotificationCriteria.attribute p_attribute_list := omit) := { //the parameter should be a list of NotificationEventTypeEventType
+		template (value) EventNotificationCriteria m_eventNotificationCriteria ( template (omit) EventNotificationCriteria.notificationEventType_list p_notificationEventType_list := omit, template (omit) EventNotificationCriteria.attribute p_attribute_list := omit) := { //the parameter should be a list of NotificationEventTypeEventType
 			createdBefore := omit,
 			createdAfter := omit,
 			modifiedSince := omit,
@@ -8469,9 +8469,9 @@ module OneM2M_Templates {
 				resultPersistence := omit,
 				resultContent := omit,
 				eventCategory := omit,
-				filterCriteria := omit,
 				deliveryAggregation := omit,
 				groupRequestIdentifier := omit,
+				filterCriteria := omit,
 				desiredIdentifierResultType := omit,
 				tokens := omit,
 				tokenIDs := omit,
diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn
index 66b9933e5f4bf0a660b921ee6069df3ec97caf6a..e53d24386ff207eb3c4a2f22266d91912131d1f8 100644
--- a/LibOneM2M/OneM2M_TestSystem.ttcn
+++ b/LibOneM2M/OneM2M_TestSystem.ttcn
@@ -30,12 +30,12 @@ module OneM2M_TestSystem {
   }
   
   type record Interface {
-	  OneM2MPort myPort,
-	  charstring myHost,
-	  charstring myProtocolBinding,
-	  charstring mySerialization
+	InterfaceIds myPort,
+	charstring myHost,
+	charstring myProtocolBinding,
+	charstring mySerialization
   }
-  
+	
   type record of Interface Interfaces;
   
 	type component Tester {
@@ -43,6 +43,12 @@ module OneM2M_TestSystem {
 		port AdapterControlPort acPort;
 		port InfoPort infoPort;
 		port UpperTesterPort utPort;
+		//Ports for AeSimu/CseSimu
+		port OneM2MPort mcaPort;
+		port OneM2MPort mcaPortIn;
+		port OneM2MPort mccPort;
+		port OneM2MPort mccPortIn;
+		port OneM2MPortInternal mccPortInternal;
 		//Common timers
 		timer tc_ac := PX_TAC;
 		timer tc_wait := PX_TWAIT;
@@ -73,9 +79,6 @@ module OneM2M_TestSystem {
 		//Attached components depending on config
 		var AeSimu vc_ae2;
 		var CseSimu vc_cse1;//For CF02 when AeSimu is master
-		//Ports
-		port OneM2MPort mcaPort;
-		port OneM2MPort mcaPortIn;
 		//global variables
 		//About configuration of the component
 		var AeSimuComponentDesc vc_aeSimuDesc;
@@ -94,12 +97,6 @@ module OneM2M_TestSystem {
 		//Attached components depending on config
 		var AeSimu vc_ae1;//For CF02 when CseSimu is master
 		var CseSimu vc_cse2;
-		//Ports
-		port OneM2MPort mcaPort;
-		port OneM2MPort mcaPortIn;
-		port OneM2MPort mccPort;
-		port OneM2MPort mccPortIn;
-		port OneM2MPortInternal mccPortInternal;
 		//global variables
 		//About configuration of the component
 		var CseSimuComponentDesc vc_cseSimuDesc;
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index 3738f7b198b9410bef77b6388634e43f9a9a8701..94b75c60b2747f5b62fbbc65507adcabf88a1cca 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -6767,6 +6767,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;
@@ -6845,11 +6846,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_mcaPortIn, m_response(v_responsePrimitive));
 								tc_ac.start;
 								repeat;
diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn
index 368690adb0aeebc96bd406bc0c0f35e66a5f0c10..11bedb2994b31021ae80fc0a9f3dc2b8e81a923d 100644
--- a/OneM2M_Testcases_CSE_Release_1.ttcn
+++ b/OneM2M_Testcases_CSE_Release_1.ttcn
@@ -589,7 +589,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 		  	  		//Local variables
 		  	  		var MsgIn v_request;
 					var template RequestPrimitive v_requestPrimitive;
-					const  charstring v_cseId := PX_CSE_ID;
+					const  charstring v_cseId := oct2char(unichar2oct(PX_CSE_ID));
 					template XSD.AnyURI v_link := pattern "{v_cseId}/S";
 					
 					//Test control
@@ -656,7 +656,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					var MsgIn v_request;
 					var template RequestPrimitive v_requestPrimitive;
 					var integer v_cseBaseIndex := -1;
-					const  charstring v_cseId := PX_CSE_ID;
+					const  charstring v_cseId := oct2char(unichar2oct(PX_CSE_ID));
 					template XSD.AnyURI v_link := pattern "{v_cseId}/?*";
 	
 					//Test control
@@ -724,7 +724,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					var template RequestPrimitive v_requestPrimitive;
 					var integer v_aeIndex := -1;
 					var integer v_aeAnncIndex := -1;
-					const  charstring v_cseId := PX_CSE_ID;
+					const  charstring v_cseId := oct2char(unichar2oct(PX_CSE_ID));
 					template XSD.AnyURI v_link := pattern "{v_cseId}/?*";
 					
 					//Test control
@@ -2187,7 +2187,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					var RequestPrimitive v_request;
 					var integer v_aeAnncIndex := -1;
 					var template PrimitiveContent v_primitiveContent;
-					const  charstring v_cseId := PX_CSE_ID;
+					const  charstring v_cseId := oct2char(unichar2oct(PX_CSE_ID));
 					template XSD.AnyURI v_link := pattern "{v_cseId}/S*";
 					template XSD.ID v_resourceID := pattern "S*";
 					
@@ -6220,8 +6220,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
 							  //Check that the resource has NOT been udpated
 							  if(ischosen(v_primitiveContentRetrieveResource.group_)) {
-							   if(v_primitiveContentRetrieveResource.group_.maxNrOfMembers == 0){
-								 setverdict(fail, __SCOPE__ & ": Error: Expiration time attribute updated")
+							   if(not ispresent(v_primitiveContentRetrieveResource.group_.maxNrOfMembers)){
+								 setverdict(fail, __SCOPE__ & ": Error: maxNrOfMembers attribute deleted")
 								}
 							}
 						}
@@ -6246,8 +6246,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
 						  	//Check that the resource has NOT been udpated
 						  	if(ischosen(v_primitiveContentRetrieveResource.accessControlPolicy)) {
-							   	if(v_primitiveContentRetrieveResource.accessControlPolicy.selfPrivileges == v_selfPrivileges) {
-									setverdict(fail, __SCOPE__ & ": Error: Expiration time attribute updated")
+							   	if(not ispresent(v_primitiveContentRetrieveResource.accessControlPolicy.selfPrivileges)) {
+									setverdict(fail, __SCOPE__ & ": Error: selfPrivileges attribute deleted")
 								}
 							}	
 						}
@@ -6271,8 +6271,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
 							  //Check that the resource has NOT been udpated
 							  if(ischosen(v_primitiveContentRetrieveResource.subscription)) {
-							   if(v_primitiveContentRetrieveResource.subscription.notificationURI == {"NullTarget"}){
-								 setverdict(fail, __SCOPE__ & ": Error: Expiration time attribute updated")
+							   if(not ispresent(v_primitiveContentRetrieveResource.subscription.notificationURI)){
+								 setverdict(fail, __SCOPE__ & ": Error: notificationURI attribute deleted")
 								}
 						   }
 						}
@@ -6618,6 +6618,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var AcpType v_accessControlPolicyIDs_1 := {"NotInitialized_1"};
 						var AcpType v_accessControlPolicyIDs_2 := {"NotInitialized_2"};
+						var RequestPrimitive v_requestPrimitive;
 						var ResponsePrimitive v_responsePrimitive;
 
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
@@ -6631,10 +6632,11 @@ module OneM2M_Testcases_CSE_Release_1 {
 						 
 
 						if(v_verdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1);
+							v_requestPrimitive := f_getRequestPrimitive(v_ae1);
 							//Check attribute 1
 							if(ispresent(v_responsePrimitive.primitiveContent)) {
 								if(ischosen(v_responsePrimitive.primitiveContent.container)) {
-									if(v_responsePrimitive.primitiveContent.container.accessControlPolicyIDs != v_accessControlPolicyIDs_2){
+									if(v_responsePrimitive.primitiveContent.container.accessControlPolicyIDs != v_requestPrimitive.primitiveContent.container.accessControlPolicyIDs){
 										setverdict(fail, __SCOPE__ & ": Error: AccessControlPolicyIDs attribute not updated correctly")
 									}
 								}
@@ -6770,6 +6772,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var AcpType v_accessControlPolicyIDs_2 := {"NotInitialized_2"};
 						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var RequestPrimitive v_requestPrimitive;
 						var ResponsePrimitive v_responsePrimitive;
 						v_createRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_1;
 						v_updateRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_2;
@@ -6780,10 +6783,11 @@ module OneM2M_Testcases_CSE_Release_1 {
 						 
 
 						if(v_verdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1);
+							v_requestPrimitive := f_getRequestPrimitive(v_ae1);
 							//Check attribute 1
 							if(ispresent(v_responsePrimitive.primitiveContent)) {
 								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
-									if(v_responsePrimitive.primitiveContent.subscription.accessControlPolicyIDs != v_accessControlPolicyIDs_2){
+									if(v_responsePrimitive.primitiveContent.subscription.accessControlPolicyIDs != v_requestPrimitive.primitiveContent.subscription.accessControlPolicyIDs){
 										setverdict(fail, __SCOPE__ & ": Error: AccessControlPolicyIDs attribute not updated correctly")
 									}
 								}
@@ -7410,6 +7414,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var ListOfURIs v_membersAccessControlPolicyIDs := {"NotInitialized"};
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
 						var ResponsePrimitive v_responsePrimitive;
+						var RequestPrimitive v_updateRequestPrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						v_updateRequest.primitiveContent.group_.membersAccessControlPolicyIDs := v_membersAccessControlPolicyIDs;
 						v_ae1.start(f_CSE_DMR_UPD_015(int9, m_createGroupBase, v_updateRequest, true));//Group
@@ -7418,10 +7423,11 @@ module OneM2M_Testcases_CSE_Release_1 {
 						 
 
 						if(v_verdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1);
+							 v_updateRequestPrimitive := f_getRequestPrimitive(v_ae1);	
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
 								 if(ischosen(v_responsePrimitive.primitiveContent.group_)) {
-									 if(v_responsePrimitive.primitiveContent.group_.membersAccessControlPolicyIDs != v_membersAccessControlPolicyIDs){
+									 if(v_responsePrimitive.primitiveContent.group_.membersAccessControlPolicyIDs != valueof(v_updateRequestPrimitive.primitiveContent.group_.membersAccessControlPolicyIDs)){
 										 setverdict(fail, __SCOPE__ & ": Error: Members Access Control Policy IDs attribute not updated correctly")
 									 }
 								 }
@@ -7430,7 +7436,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 	 
 							//Check that the resource has been udpated correctly
 							if(ischosen(v_primitiveContentRetrieveResource.group_)) {
-							   if(v_primitiveContentRetrieveResource.group_.membersAccessControlPolicyIDs != v_membersAccessControlPolicyIDs){
+							   if(v_primitiveContentRetrieveResource.group_.membersAccessControlPolicyIDs != valueof(v_updateRequestPrimitive.primitiveContent.group_.membersAccessControlPolicyIDs)){
 								setverdict(fail, __SCOPE__ & ": Error: Members Access Control Policy IDs attribute not updated correctly")
 							  	}
 							}
@@ -7480,7 +7486,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					testcase TC_CSE_DMR_UPD_016_CSR_ET() runs on Tester system CseSystem {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var Timestamp v_expirationTime := "21001231T012345";
+						var Timestamp v_expirationTime := "20301231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -7546,7 +7552,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					testcase TC_CSE_DMR_UPD_016_AE_ET() runs on Tester system CseSystem {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var Timestamp v_expirationTime := "21001231T012345";
+						var Timestamp v_expirationTime := "20301231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateAeBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -7614,7 +7620,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					testcase TC_CSE_DMR_UPD_016_CNT_ET() runs on Tester system CseSystem {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var Timestamp v_expirationTime := "21001231T012345";
+						var Timestamp v_expirationTime := "20301231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -7648,7 +7654,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					testcase TC_CSE_DMR_UPD_016_ACP_ET() runs on Tester system CseSystem {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var Timestamp v_expirationTime := "21001231T012345";
+						var Timestamp v_expirationTime := "20301231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -7748,7 +7754,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					testcase TC_CSE_DMR_UPD_016_SUB_ET() runs on Tester system CseSystem {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var Timestamp v_expirationTime := "21001231T012345";
+						var Timestamp v_expirationTime := "20301231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -7785,6 +7791,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var ListOfURIs v_notificationURI := {"NotReachableNotificationURI"};
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var RequestPrimitive v_updateRequestPrimitive;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
@@ -7796,10 +7803,11 @@ module OneM2M_Testcases_CSE_Release_1 {
 						 
 
 						if(v_verdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1);
+							v_updateRequestPrimitive := f_getRequestPrimitive(v_ae1);	
 							//Check attribute 1
 							if(ispresent(v_responsePrimitive.primitiveContent)) {
 								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
-									if(v_responsePrimitive.primitiveContent.subscription.notificationURI != v_notificationURI){
+									if(v_responsePrimitive.primitiveContent.subscription.notificationURI != v_updateRequestPrimitive.primitiveContent.subscription.notificationURI){
 										setverdict(fail, __SCOPE__ & ": Error: Notification URI attribute not updated correctly")
 									}
 								}
@@ -7808,7 +7816,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 							
 							//Check that the resource has been udpated correctly
 							if(ischosen(v_primitiveContentRetrieveResource.subscription)) {
-							  if(v_primitiveContentRetrieveResource.subscription.notificationURI != v_notificationURI){
+							  if(v_primitiveContentRetrieveResource.subscription.notificationURI != v_updateRequestPrimitive.primitiveContent.subscription.notificationURI){
 								setverdict(fail, __SCOPE__ & ": Error: Notification URI attribute not updated correctly")
 							  }
 							}
@@ -7852,7 +7860,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					testcase TC_CSE_DMR_UPD_016_GRP_ET() runs on Tester system CseSystem {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var Timestamp v_expirationTime := "21001231T012345";
+						var Timestamp v_expirationTime := "20301231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -7922,6 +7930,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var ListOfURIs v_memberIDs := {"NotInitialized"};
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
+						var RequestPrimitive v_updateRequestPrimitive;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						v_updateRequest.primitiveContent.group_.memberIDs := v_memberIDs;
@@ -7932,10 +7941,11 @@ module OneM2M_Testcases_CSE_Release_1 {
 						 
 
 						if(v_verdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1);
+							v_updateRequestPrimitive := f_getRequestPrimitive(v_ae1);	
 							//Check attribute 1
 							if(ispresent(v_responsePrimitive.primitiveContent)) {
 								if(ischosen(v_responsePrimitive.primitiveContent.group_)) {
-									if(v_responsePrimitive.primitiveContent.group_.memberIDs != v_memberIDs){
+									if(v_responsePrimitive.primitiveContent.group_.memberIDs != v_updateRequestPrimitive.primitiveContent.group_.memberIDs){
 										setverdict(fail, __SCOPE__ & ": Error: Member IDs attribute not updated correctly")
 									}
 								}
@@ -7944,7 +7954,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 							
 							//Check that the resource has been udpated correctly
 							if(ischosen(v_primitiveContentRetrieveResource.group_)) {
-							  if(v_primitiveContentRetrieveResource.group_.memberIDs != v_memberIDs){
+							  if(v_primitiveContentRetrieveResource.group_.memberIDs != v_updateRequestPrimitive.primitiveContent.group_.memberIDs){
 								setverdict(fail, __SCOPE__ & ": Error: Member IDs attribute not updated correctly")
 							  }
 							}
diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn
index 6afe2af5d59d77bc99d3bf2c9d13426130ac3da8..0a28580f4e7400d21704cea5199ac0ecc4a0aecd 100644
--- a/OneM2M_Testcases_CSE_Release_2.ttcn
+++ b/OneM2M_Testcases_CSE_Release_2.ttcn
@@ -1415,7 +1415,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var Timestamp v_expirationTime_1 := "20301231T012345";
-						var Timestamp v_expirationTime_2 := "20401020T012345";
+						var Timestamp v_expirationTime_2 := "20301231T012340";
 						var template RequestPrimitive v_createRequest := m_createAcpBase;
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -1445,7 +1445,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var Timestamp v_expirationTime_1 := "20301231T012345";
-						var Timestamp v_expirationTime_2 := "20401020T012345";
+						var Timestamp v_expirationTime_2 := "20301231T012340";
 						var ResponsePrimitive v_responsePrimitive;
 
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
@@ -1567,7 +1567,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						
 						var Timestamp v_expirationTime_1 := "20301231T012345";
-						var Timestamp v_expirationTime_2 := "20401020T012345";
+						var Timestamp v_expirationTime_2 := "20301231T012340";
 						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -3364,6 +3364,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 					var template RequestPrimitive v_req2;
 					var MsgIn v_resp1, v_resp3;
 					var ResponsePrimitive v_resp2;
+					var RequestID v_expectedRequestIdentifier;
 					
 					// Test control
 		
@@ -3390,7 +3391,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 					vc_cse1.start(f_cse_notifyProcedure_notify(valueof(v_req2)));
 					
 					v_req2.from_ := PX_TS_CSE1.cseId;
-					v_req2.requestIdentifier := pattern "{v_req2.requestIdentifier}*";
+					v_expectedRequestIdentifier := valueof(v_req2.requestIdentifier);
+					v_req2.requestIdentifier :=  pattern "{v_expectedRequestIdentifier}*";
 					
 					tc_ac.start;
 					alt {
@@ -3475,6 +3477,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 					var template RequestPrimitive v_req2;
 					var MsgIn v_resp1, v_resp3;
 					var ResponsePrimitive v_resp2;
+					var RequestID v_expectedRequestIdentifier;
 					
 					// Test control
 		
@@ -3497,7 +3500,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 					
 					vc_cse1.start(f_cse_notifyProcedure_notify(valueof(v_req2)));
 					v_req2.from_ := PX_TS_CSE1.cseId;
-					v_req2.requestIdentifier := pattern "{v_req2.requestIdentifier}*";
+					v_expectedRequestIdentifier := valueof(v_req2.requestIdentifier);
+					v_req2.requestIdentifier := pattern "{v_expectedRequestIdentifier}*";
 					
 					v_req1 := valueof(m_retrievePollingRequest(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
 					f_send(e_mcaPort, m_request(v_req1));
@@ -3583,7 +3587,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 					var RequestPrimitive v_req3;
 					var MsgIn v_resp1, v_resp3;
 					var ResponsePrimitive v_resp2;//Response to a Notify Request
-		
+					var RequestID v_expectedRequestIdentifier;
+					
 					// Test control
 	
 	
@@ -3609,7 +3614,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 					
 					vc_cse1.start(f_cse_notifyProcedure_notify(valueof(v_req2)));
 					v_req2.from_ := PX_TS_CSE1.cseId;
-					v_req2.requestIdentifier := pattern "{v_req2.requestIdentifier}*";
+					v_expectedRequestIdentifier := valueof(v_req2.requestIdentifier);
+					v_req2.requestIdentifier := pattern "{v_expectedRequestIdentifier}*";
 					
 					tc_ac.start;
 					alt {