diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index e34c6eb49b5b36849ccfba3a43baf4c35deb6c68..7b766a38f394f7ad0eb1d553ef727fe837d83b67 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -179,7 +179,7 @@ module OneM2M_Functions {
 			 */
 			function f_cse_preamble_createAcpAux(in template (value) XSD.String p_acpName := c_acpAuxName, in template (value) AccessControlOperations p_allowedOperations := int63) runs on CseTester return integer {//c_CRUDNDi
 			
-				return f_cse_createAccessControlPolicyAux(p_acpName, p_allowedOperations);
+				return f_cse_createAccessControlPolicyAux(p_acpName, -, p_allowedOperations);
 			
 			}
 
@@ -197,7 +197,8 @@ module OneM2M_Functions {
 				var integer v_aeAuxIndex := -1;
 								
 				v_request := valueof(m_createAeAux(p_accessControlPolicyIDs, p_poaList));
-				v_request.to_ := f_getResourceAddress();
+				
+				v_request := f_getCreateRequestPrimitive(int2, v_request, -1);
 				
 				mcaPort.send(m_request(v_request));
 				
@@ -350,18 +351,10 @@ module OneM2M_Functions {
 						
 						v_resourceAddress := f_getResourceAddress(vc_resourcesIndexToBeDeleted[i]); 
 						
-						v_request := valueof(m_deleteRequest(v_resourceAddress));
+						v_request := valueof(m_delete(v_resourceAddress, f_getOriginator(vc_resourcesIndexToBeDeleted[i])));
 						
-						//For deletion of AEs, priority is to use AE-ID in From parameter
-						//For other resources PX_SUPER_USER should be able to do DELETE operation
-						//TODO Replace below code by f_getOriginator
 						v_request.from_ := f_getOriginator(vc_resourcesIndexToBeDeleted[i]);
-//						if(PX_USE_RESOURCE_ID_AS_ORIGINATOR){
-//							if(ischosen(vc_resourcesList[vc_resourcesIndexToBeDeleted[i]].resource.aE)) {	
-//								v_request.from_ := vc_resourcesList[vc_resourcesIndexToBeDeleted[i]].resource.aE.aE_ID;
-//							}
-//						}
-						
+
 						mcaPort.send(m_request(v_request));
 						
 						tc_ac.start;
@@ -461,15 +454,14 @@ module OneM2M_Functions {
 			 * @return Internal resource index of the created auxiliar ACP resource
 			 * @verdict 
 			 */
-			function f_cse_createAccessControlPolicyAux(in template (value) XSD.String p_acpName := c_acpAuxName, in template (value) AccessControlOperations p_allowedOperations := int63) runs on CseTester return integer{
-				var RequestPrimitive v_request;
+			function f_cse_createAccessControlPolicyAux(in template (value) XSD.String p_acpName := c_acpAuxName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63) runs on CseTester return integer{				var RequestPrimitive v_request;
 				var MsgIn v_response;
 				var integer v_acpAuxIndex := -1;
 				
 				v_request := valueof(m_createAcpAux(p_acpName := p_acpName, p_allowedOperations := p_allowedOperations));
 				
-				v_request.to_ := f_getResourceAddress();
-				
+				v_request := f_getCreateRequestPrimitive(int1, v_request, -1);
+								
 				mcaPort.send(m_request(v_request));
 				tc_ac.start;
 				alt {
@@ -599,7 +591,7 @@ module OneM2M_Functions {
 				var RequestPrimitive v_request;
 				
 				if(not isvalue(p_requestPrimitive)) {
-					v_request := valueof(m_deleteRequest(f_getResourceAddress(p_index)));
+					v_request := valueof(m_delete(f_getResourceAddress(p_index), f_getOriginator(p_index)));
 				} else {
 					v_request := valueof(p_requestPrimitive);
 				}
@@ -1680,28 +1672,30 @@ module OneM2M_Functions {
 		/**
 		 * @desc Resolution of the originator field (from) for a given resource
 		 * @param p_targetResourceIndex Internal resource index of the given resource
+		 * @param p_testSystemRole True if TS acting as an AE, False if TS acting as a CSE
 		 * @return Originator for a given resource
 		 * @verdict 
 		 */
-		function f_getOriginator(integer  p_targetResourceIndex := -1) runs on CseTester return XSD.AnyURI {
+		function f_getOriginator(integer  p_targetResourceIndex := -1, boolean p_testSystemRole := true) runs on CseTester return XSD.AnyURI {
 				
 			if(p_targetResourceIndex == -1) {
-				return PX_SUPER_USER;
+				if(p_testSystemRole) {
+					return PX_SUPER_AE_ID;
+				} else {
+					return PX_SUPER_CSE_ID;
+				}
 			}	
-				
-			if(PX_USE_RESOURCE_ID_AS_ORIGINATOR) {
-				if(vc_resourcesList[p_targetResourceIndex].parentIndex == -1) {
-					return f_getResourceId(vc_resourcesList[p_targetResourceIndex].resource);
+			
+			if(vc_resourcesList[p_targetResourceIndex].parentIndex == -1) {
+				if(ischosen(vc_resourcesList[p_targetResourceIndex].resource.aE)) {
+					return vc_resourcesList[p_targetResourceIndex].resource.aE.aE_ID;
+				} else if (ischosen(vc_resourcesList[p_targetResourceIndex].resource.remoteCSE)) {
+					return vc_resourcesList[p_targetResourceIndex].resource.remoteCSE.cSE_ID; 
 				} else {
 					return f_getOriginator(vc_resourcesList[p_targetResourceIndex].parentIndex);
-//					if(ischosen(vc_resourcesList[p_targetResourceIndex].resource.aE)) {
-//						return vc_resourcesList[p_targetResourceIndex].resource.aE.aE_ID;
-//					} else {
-//						return f_getOriginator(vc_resourcesList[p_targetResourceIndex].parentIndex);
-//					}
 				}
 			} else {
-				return PX_SUPER_USER;
+				return f_getOriginator(vc_resourcesList[p_targetResourceIndex].parentIndex);
 			}
 		}
 		
@@ -1752,8 +1746,8 @@ module OneM2M_Functions {
 		 * @param p_announcementTargetResource Announcement Target Resource
 		 * @return p_annoucementTargetPoA Announcemenet Target PoA
 		 */
-		function f_getAnnouncementTargetPoA(in charstring p_protocolBinding := PX_PROTOCOL_BINDING, in charstring p_announcementTargetAddress := PX_CSE1_ADDRESS, charstring p_announcementTargetResource := "/CseBaseTester" ) return charstring {
-			
+		function f_getAnnouncementTargetPoA(in charstring p_protocolBinding := PX_PROTOCOL_BINDING, in charstring p_announcementTargetAddress := PX_CSE1_ADDRESS, charstring p_announcementTargetResource := "CseBaseTester" ) return charstring {
+						
 			if(p_protocolBinding == "HTTP") {
 				return "http://" & p_announcementTargetAddress & "/" & p_announcementTargetResource;
 			} else if (p_protocolBinding == "COAP") {
@@ -1889,6 +1883,29 @@ module OneM2M_Functions {
 			else if (ischosen(p_requestPrimitive.primitiveContent.locationPolicy)){
 				p_requestPrimitive.primitiveContent.locationPolicy.accessControlPolicyIDs := p_accessControlPolicyIDs;
 			}
+			else if (ischosen(p_requestPrimitive.primitiveContent.delivery)){
+				p_requestPrimitive.primitiveContent.delivery.accessControlPolicyIDs := p_accessControlPolicyIDs;
+			}
+			else if (ischosen(p_requestPrimitive.primitiveContent.mgmtCmd)){
+				p_requestPrimitive.primitiveContent.mgmtCmd.accessControlPolicyIDs := p_accessControlPolicyIDs;
+			}	
+			else if (ischosen(p_requestPrimitive.primitiveContent.node)){
+				p_requestPrimitive.primitiveContent.node.accessControlPolicyIDs := p_accessControlPolicyIDs;
+			}	
+			else if (ischosen(p_requestPrimitive.primitiveContent.remoteCSE)){
+				p_requestPrimitive.primitiveContent.remoteCSE.accessControlPolicyIDs := p_accessControlPolicyIDs;
+			}
+			else if (ischosen(p_requestPrimitive.primitiveContent.request)){
+				p_requestPrimitive.primitiveContent.request.accessControlPolicyIDs := p_accessControlPolicyIDs;
+			}
+			else if (ischosen(p_requestPrimitive.primitiveContent.statsCollect)){
+				p_requestPrimitive.primitiveContent.statsCollect.accessControlPolicyIDs := p_accessControlPolicyIDs;
+			}
+			else if (ischosen(p_requestPrimitive.primitiveContent.statsConfig)){
+				p_requestPrimitive.primitiveContent.statsConfig.accessControlPolicyIDs := p_accessControlPolicyIDs;
+			} else {
+				log( __SCOPE__, ":INFO: Resource not having acpi attribute. Not possible to set acpi")
+			}
 			return valueof(p_requestPrimitive);					
 		}
 		
diff --git a/LibOneM2M/OneM2M_Pixits.ttcn b/LibOneM2M/OneM2M_Pixits.ttcn
index f4a218107251b6b47056f206fac21c6b43b2bb47..a37cf2f01ea29615b96d5092a9554da317c06e3d 100644
--- a/LibOneM2M/OneM2M_Pixits.ttcn
+++ b/LibOneM2M/OneM2M_Pixits.ttcn
@@ -69,7 +69,15 @@ module OneM2M_Pixits {
 	 */		
 	modulepar XSD.ID PX_AE2_ID_STEM				:= "";
 	
-	modulepar XSD.ID PX_SUPER_USER				:= "admin:admin";
+	/**
+	 * @desc AE-ID with privileges to CREATE at the IUT CSEBase with AE-ID-Stem format (relative) according to TS-0001-7.2-1
+	 */	
+	modulepar XSD.ID PX_SUPER_AE_ID				:= "admin:admin";
+	
+	/**
+	 * @desc CSE-ID with privileges to CREATE at the IUT CSEBase with SP-relative-CSE-ID format (relative) according to TS-0001-7.2-1
+	 */	
+	modulepar XSD.ID PX_SUPER_CSE_ID				:= "/admin:admin";
 
 	/**
 	 * @desc Test System APP-ID with App-ID format according to TS-0001-7.2-1
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 46fa89ccea56b19613aa0cedb5a3f088935c8a3f..780d6cbdfc15a885d204afa402ae34038296edf6 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -499,7 +499,6 @@ module OneM2M_Templates {
 				
 			template (value) RequestPrimitive m_createAcp(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name := c_defaultAccessControlPolicyResourceName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63) modifies m_create := {
 				to_ := p_parentResourceAddress,
-				from_ := PX_SUPER_USER,
 				requestIdentifier := testcasename() & "-m_createAcp" & f_rnd(1, 1000000),
 				resourceType := int1,
 				primitiveContent := {accessControlPolicy := m_contentCreateAcp (p_name, p_acor, p_allowedOperations)}
@@ -520,7 +519,6 @@ module OneM2M_Templates {
 			 * @desc Base CREATE request primitive for AccessControlPolicy resource (AUX)
 			 */
 			template (value) RequestPrimitive m_createAcpAux(in template (value) XSD.String p_acpName := c_acpAuxName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63 ) modifies m_create := {
-				from_ := PX_SUPER_USER,
 				requestIdentifier := testcasename() & "-m_createAcpAux" & f_rnd(1, 1000000),
 				resourceType := int1,
 				primitiveContent := {accessControlPolicy := m_contentCreateAcp (p_acpName, p_acor, p_allowedOperations)}
@@ -910,7 +908,7 @@ module OneM2M_Templates {
     	
 		group Delete {
     	
-			template (value) RequestPrimitive m_deleteRequest(XSD.ID p_resourceAddress, in XSD.ID p_originator := PX_SUPER_USER) := {
+			template (value) RequestPrimitive m_delete(XSD.ID p_resourceAddress, in XSD.ID p_originator := PX_SUPER_AE_ID) := {
 				operation := int4,
 				to_ := p_resourceAddress,
 				from_ := p_originator,
diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn
index ce10a29f869b62a12f66d20d472d4a2a7866e4e7..f6d9208addab417d39aef9116c9c559b6ccc8785 100644
--- a/LibOneM2M/OneM2M_Types.ttcn
+++ b/LibOneM2M/OneM2M_Types.ttcn
@@ -1091,6 +1091,7 @@ module OneM2M_Types {
 	  Node_optional node,
 	  NodeAnnc_optional nodeAnnc,
 	  PollingChannel_optional pollingChannel,
+	  Request_optional request, 
 	  RemoteCSE_optional remoteCSE,
 	  Schedule_optional schedule,
 	  ScheduleAnnc_optional scheduleAnnc,
@@ -4998,6 +4999,45 @@ group optionalResourceTypes {
 		  variant (choice.choice_list[-].group_) "name as 'group'";
 		  variant (choice.choice_list[-].aEAnnc) "name as capitalized";
 		};
+		
+		type record Request_optional
+		{
+			ResourceName resourceName optional,
+			ResourceType resourceType optional,
+			XSD.ID resourceID optional,
+			NhURI parentID optional,
+			Timestamp creationTime optional,
+			Timestamp lastModifiedTime optional,
+			Labels labels optional,
+			AcpType accessControlPolicyIDs optional,
+			Timestamp expirationTime optional,
+			ListOfURIs dynamicAuthorizationConsultationIDs optional,
+			XSD.NonNegativeInteger stateTag optional,
+			Operation operation optional,
+			XSD.AnyURI target optional,
+			XSD.ID originator optional,
+			RequestID requestID optional,
+			MetaInformation metaInformation optional,
+			PrimitiveContent primitiveContent optional,
+			RequestStatus requestStatus optional,
+			OperationResult operationResult optional,
+			union {
+				record length(1 .. infinity) of ChildResourceRef childResource_list,
+				record length(1 .. infinity) of union {
+					Subscription subscription
+				} choice_list
+			} choice optional
+		}
+		with {
+		  variant "name as uncapitalized";
+		  variant "element";
+		  variant (resourceName) "attribute";
+		  variant (choice) "untagged";
+		  variant (choice.childResource_list) "untagged";
+		  variant (choice.childResource_list[-]) "name as 'childResource'";
+		  variant (choice.choice_list) "untagged";
+		  variant (choice.choice_list[-]) "untagged";
+		};
 
 		type record Schedule_optional
 		{
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index 49bc2deeea9177f35386b53d43c96683425fb99b..bd6d40d00698582f3ddfe57569b2df4793365401 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -40,8 +40,8 @@ module OneM2M_Testcases {
 					
 					v_resourceAddress := f_getResourceAddress() & "/" & PX_RESOURCES_TO_BE_DELETED[i]; 
 						
-					v_request := valueof(m_deleteRequest(v_resourceAddress));
-    
+					v_request := valueof(m_delete(v_resourceAddress, PX_SUPER_AE_ID));
+					    
 					mcaPort.send(m_request(v_request));
 					
 					t_ac.start;
@@ -657,8 +657,8 @@ module OneM2M_Testcases {
 						vc_addressingMethod := e_nonHierarchical;
 						vc_primitiveScope := p_primitiveScope;
 						
-						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex)));
-						
+						v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
+												
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
 						alt {
@@ -744,7 +744,7 @@ module OneM2M_Testcases {
 						vc_addressingMethod := e_hierarchical;
 						vc_primitiveScope := p_primitiveScope;
 						
-						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex)));
+						v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
 						
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
@@ -1492,7 +1492,7 @@ module OneM2M_Testcases {
 					// Test Body
 					v_contentResponse.cSEBase := mw_contentCSEBase_rc1;
 					
-					mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(), f_getOriginator(v_aeIndex))));
+					mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(), f_getOriginator(v_aeIndex))));//TODO Maybe PX_SUPER_AE_ID
 	
 					tc_ac.start;
 					alt {
@@ -1553,8 +1553,8 @@ module OneM2M_Testcases {
 					// Test Body
 					v_contentResponse.cSEBase := mw_contentCSEBase_rc1;
 	
-					mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(), f_getOriginator(v_aeIndex))));
-
+					mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(), f_getOriginator(v_aeIndex))));//TODO Maybe PX_SUPER_AE_ID 
+					
 					tc_ac.start;
 					alt {
 						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse))) -> value v_response {
@@ -1619,7 +1619,7 @@ module OneM2M_Testcases {
 					// Test Body
 					v_contentResponse.cSEBase := mw_contentCSEBase_rc1;
 
-					mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(), f_getOriginator(v_aeIndex))));
+					mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(), f_getOriginator(v_aeIndex))));//TODO Maybe PX_SUPER_AE_ID
 
 					tc_ac.start;
 					alt {
@@ -1743,7 +1743,7 @@ module OneM2M_Testcases {
 					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
 		
 					// Test Body
-					v_request := valueof(m_deleteRequest(f_getResourceAddress()));
+					v_request := valueof(m_delete(f_getResourceAddress(), f_getOriginator()));
 					mcaPort.send(m_request(v_request));
 					tc_ac.start;
 					alt {
@@ -2200,6 +2200,7 @@ module OneM2M_Testcases {
 						var integer v_parentIndex := -1;
 						var integer v_resourceIndex := -1;
 						var integer v_ae2Index := -1;
+						var integer v_acpAuxIndex := -1;
 						var PoaList v_poaList := {"http://" & PX_AE2_ADDRESS & "/"};
     										   
 						// Test control
@@ -2218,7 +2219,16 @@ module OneM2M_Testcases {
 								p_notifyHandler.start(f_cse_notifyProcedure_subscriptionVerificationHandler(v_parentIndex));
 							}
 							v_parentIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_parentIndex);
-						}										
+						} else {//Resource under CSEBase
+						
+							if(p_resourceType != int1) {
+													
+								v_acpAuxIndex := f_cse_createAccessControlPolicyAux(-, -, -);
+												
+								p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[v_acpAuxIndex].resource.accessControlPolicy.resourceID});
+							}
+												
+						}															
     									
 						// Test Body
     					
@@ -5765,7 +5775,8 @@ module OneM2M_Testcases {
 						var integer v_resourceIndex := -1;
 						var CseTester v_notifyHandler;
 						var integer v_ae2Index := -1;
-						    										   
+						var integer v_acpIndex := -1;
+												    										   
 						// Test control
     				
 						// Test component configuration
@@ -5776,6 +5787,12 @@ module OneM2M_Testcases {
 						// Preamble
 						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
 						
+						if(p_resourceType != int1) {
+							
+							v_acpIndex := f_cse_createAccessControlPolicyAux(-, -, -);
+						
+							p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[v_acpIndex].resource.accessControlPolicy.resourceID});
+						}
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 							
 						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
@@ -5891,17 +5908,28 @@ module OneM2M_Testcases {
 						// Test adapter configuration
     				
 						// Preamble
-						v_acpAuxIndex := f_cse_preamble_createAcpAux(-, -);//c_CRUDNDi)
 						
 						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi;
 						
-						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
-										
-						p_requestPrimitive := f_setAcpId( p_requestPrimitive, {f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)});
+						if(p_resourceType != int1) {
+							
+							v_acpAuxIndex := f_cse_createAccessControlPolicyAux(-, -, int61);
+					
+							p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[v_acpAuxIndex].resource.accessControlPolicy.resourceID});
+						}
+					
+					
+						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 						
-						v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
-
-						f_cse_updateAcpAuxResource(int61); //c_CUDNDi
+							f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
+					
+							v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
+									
+						} else {	//ResourceType = RemoteCSE
+												
+							v_resourceIndex := f_cse_registerRemoteCse(p_requestPrimitive);
+							
+						}
 								
 						// Test Body
 						mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_aeIndex))));//from AE ID
@@ -6020,7 +6048,8 @@ module OneM2M_Testcases {
 						var integer v_resourceIndex := -1;
 						var CseTester v_notifyHandler;
 						var integer v_ae2Index := -1;
-    										   
+						var integer v_acpAuxIndex := -1;
+						    										   
 						// Test control
     				
 						// Test component configuration
@@ -6031,6 +6060,12 @@ module OneM2M_Testcases {
 						// Preamble
 						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);	
 						
+						if(p_resourceType != int1) {
+							
+							v_acpAuxIndex := f_cse_createAccessControlPolicyAux(-, -, -);
+						
+							p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[v_acpAuxIndex].resource.accessControlPolicy.resourceID});
+						}
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 							
 						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
@@ -6162,7 +6197,8 @@ module OneM2M_Testcases {
 						var integer v_resourceIndex := -1;
 						var CseTester v_notifyHandler;
 						var integer v_ae2Index := -1;
-    										   
+						var integer v_acpAuxIndex := -1;
+						    										   
 						// Test control
     				
 						// Test component configuration
@@ -6173,6 +6209,12 @@ module OneM2M_Testcases {
 						// Preamble
 						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
 						
+						if(p_resourceType != int1) {
+							
+							v_acpAuxIndex := f_cse_createAccessControlPolicyAux(-, -, -);
+						
+							p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[v_acpAuxIndex].resource.accessControlPolicy.resourceID});
+						}
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 	
 						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
@@ -6376,7 +6418,8 @@ module OneM2M_Testcases {
 						var integer v_resourceIndex := -1;
 						var CseTester v_notifyHandler;
 						var integer v_ae2Index := -1;
-    										   
+						var integer v_acpAuxIndex := -1;
+						    										   
 						// Test control
     				
 						// Test component configuration
@@ -6387,6 +6430,12 @@ module OneM2M_Testcases {
 						// Preamble
 						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
 						
+						if(p_resourceType != int1) {
+							
+							v_acpAuxIndex := f_cse_createAccessControlPolicyAux(-, -, -);
+						
+							p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[v_acpAuxIndex].resource.accessControlPolicy.resourceID});
+						}
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 	
 						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
@@ -6490,7 +6539,8 @@ module OneM2M_Testcases {
 						var integer v_resourceIndex := -1;
 						var CseTester v_notifyHandler;
 						var integer v_ae2Index := -1;
-											   
+						var integer v_acpAuxIndex := -1;
+																	   
 						// Test control
     				
 						// Test component configuration
@@ -6501,6 +6551,12 @@ module OneM2M_Testcases {
 						// Preamble
 						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
 						
+						if(p_resourceType != int1) {
+							
+							v_acpAuxIndex := f_cse_createAccessControlPolicyAux(-, -, -);
+						
+							p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[v_acpAuxIndex].resource.accessControlPolicy.resourceID});
+						}
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 	
 						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
@@ -6600,7 +6656,8 @@ module OneM2M_Testcases {
 						var integer v_resourceIndex := -1;
 						var CseTester v_notifyHandler;
 						var integer v_ae2Index := -1;
-											   
+						var integer v_acpAuxIndex := -1;
+																	   
 						// Test control
     				
 						// Test component configuration
@@ -6611,6 +6668,12 @@ module OneM2M_Testcases {
 						// Preamble
 						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
 						
+						if(p_resourceType != int1) {
+							
+							v_acpAuxIndex := f_cse_createAccessControlPolicyAux(-, -, -);
+						
+							p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[v_acpAuxIndex].resource.accessControlPolicy.resourceID});
+						}
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 	
 						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
@@ -8326,7 +8389,7 @@ module OneM2M_Testcases {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
 						var Labels v_labels_2 := {"To be deleted"};
-						var SetOfAcrs v_privileges_2 := {accessControlRule_list := {valueof(m_createAcr({PX_SUPER_USER}, int61))}};
+						var SetOfAcrs v_privileges_2 := {accessControlRule_list := {valueof(m_createAcr({PX_SUPER_AE_ID}, int61))}};
 						var AttributeAux_list v_nullFields;
 						var template RequestPrimitive v_createRequest := m_createAcpBase;// privileges set by default to 63 for *
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
@@ -10334,14 +10397,15 @@ module OneM2M_Testcases {
 					 * @desc Check that the IUT updates successfully the value of the optional attribute OPTIONAL_ATTRIBUTE of the RESOURCE_TYPE resource under CSEBase
 					 */
 					testcase TC_CSE_DMR_UPD_017_CSR_LBL() runs on CseTester system CseSystem {
-					   var Labels v_labels := {"MyLabel"};
-					   var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;
-					   var ResponsePrimitive v_responsePrimitive;
-					   var PrimitiveContent v_primitiveContentRetrieveResource;
+						var AcpType v_acpType;
+					   	var Labels v_labels := {"MyLabel"};
+					   	var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;
+					   	var ResponsePrimitive v_responsePrimitive;
+					   	var PrimitiveContent v_primitiveContentRetrieveResource;
 	
 					   v_updateRequest.primitiveContent.remoteCSE.labels := v_labels;
 	
-					   v_responsePrimitive := f_CSE_DMR_UPD_017(int16, m_createRemoteCSEBase, v_updateRequest, v_primitiveContentRetrieveResource);//Remote CSE
+					   v_responsePrimitive := f_CSE_DMR_UPD_017(int16, m_createRemoteCSEBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Remote CSE
 					   if(getverdict == pass){
 						   //Check attribute 1
 						   if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10362,14 +10426,15 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_CSR_POA() runs on CseTester system CseSystem {
-					   var PoaList v_poaList := {"http://" & PX_AE2_ADDRESS & "/"};
+						var AcpType v_acpType;
+					   	var PoaList v_poaList := {"http://" & PX_AE2_ADDRESS & "/"};
 					   var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;
 					   var ResponsePrimitive v_responsePrimitive;
 					   var PrimitiveContent v_primitiveContentRetrieveResource;
 
 					   v_updateRequest.primitiveContent.remoteCSE.pointOfAccess := v_poaList;
 
-					   v_responsePrimitive := f_CSE_DMR_UPD_017(int16, m_createRemoteCSEBase, v_updateRequest, v_primitiveContentRetrieveResource);//Remote CSE
+					   v_responsePrimitive := f_CSE_DMR_UPD_017(int16, m_createRemoteCSEBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Remote CSE
 					   if(getverdict == pass){
 						  //Check attribute 1
 						  if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10390,6 +10455,7 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_CSR_NL() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 					   var XSD.AnyURI v_nodeLink := "MyNodeId";
 					   var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;
 					   var ResponsePrimitive v_responsePrimitive;
@@ -10397,7 +10463,7 @@ module OneM2M_Testcases {
 
 					   v_updateRequest.primitiveContent.remoteCSE.nodeLink := v_nodeLink;
 
-					   v_responsePrimitive := f_CSE_DMR_UPD_017(int16, m_createRemoteCSEBase, v_updateRequest, v_primitiveContentRetrieveResource);//Remote CSE
+					   v_responsePrimitive := f_CSE_DMR_UPD_017(int16, m_createRemoteCSEBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Remote CSE
 					   if(getverdict == pass){
 						 //Check attribute 1
 						 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10418,6 +10484,7 @@ module OneM2M_Testcases {
 					}
 			  		
 					testcase TC_CSE_DMR_UPD_017_NOD_LBL() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var Labels v_labels := {"MyLabel"};
 						var template RequestPrimitive v_updateRequest := m_updateNodeBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -10425,7 +10492,7 @@ module OneM2M_Testcases {
 						
 						v_updateRequest.primitiveContent.node.labels := v_labels;
 						
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int9, m_createNodeBase, v_updateRequest, v_primitiveContentRetrieveResource);//Node
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int9, m_createNodeBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Node
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10453,12 +10520,12 @@ module OneM2M_Testcases {
 						
 						v_updateRequest.primitiveContent.node.accessControlPolicyIDs := v_acpType;
 						
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int9, m_createNodeBase, v_updateRequest, v_primitiveContentRetrieveResource);//Node
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int9, m_createNodeBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType, true);//Node
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
 								 if(ischosen(v_responsePrimitive.primitiveContent.node)) {
-									 if(v_responsePrimitive.primitiveContent.node.accessControlPolicyIDs != v_acpType){
+									 if(v_responsePrimitive.primitiveContent.node.accessControlPolicyIDs != valueof(v_acpType)){
 										 setverdict(fail, __SCOPE__, ": Error: Access Control Policy attribute not updated correctly")
 									 }
 								 }
@@ -10466,7 +10533,7 @@ module OneM2M_Testcases {
 	 
 							//Check that the resource has been udpated correctly
 							  if(ischosen(v_primitiveContentRetrieveResource.node)) {
-							   if(v_primitiveContentRetrieveResource.node.accessControlPolicyIDs != v_acpType){
+							   if(v_primitiveContentRetrieveResource.node.accessControlPolicyIDs != valueof(v_acpType)){
 								setverdict(fail, __SCOPE__ & ": Error: Access Control Policy attribute not updated correctly")
 							  }
 							}
@@ -10479,6 +10546,7 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_AE_LBL() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var Labels v_labels := {"MyLabel"};
 						var template RequestPrimitive v_updateRequest := m_updateAE;
 						var ResponsePrimitive v_responsePrimitive;
@@ -10486,7 +10554,7 @@ module OneM2M_Testcases {
 						
 						v_updateRequest.primitiveContent.aE.labels := v_labels;
 						
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int2, m_createAe(PX_APP_ID), v_updateRequest, v_primitiveContentRetrieveResource);//AE
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int2, m_createAe(PX_APP_ID), v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//AE
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10514,12 +10582,12 @@ module OneM2M_Testcases {
 						
 						v_updateRequest.primitiveContent.aE.accessControlPolicyIDs := v_acpType;
 						
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int2, m_createAe(PX_APP_ID), v_updateRequest, v_primitiveContentRetrieveResource);//AE
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int2, m_createAe(PX_APP_ID), v_updateRequest, v_primitiveContentRetrieveResource, v_acpType, true);//AE
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
 								 if(ischosen(v_responsePrimitive.primitiveContent.aE)) {
-									 if(v_responsePrimitive.primitiveContent.aE.accessControlPolicyIDs != v_acpType){
+									 if(v_responsePrimitive.primitiveContent.aE.accessControlPolicyIDs != valueof(v_acpType)){
 										 setverdict(fail, __SCOPE__, ": Error: Access control policy IDs attribute not updated correctly")
 									 }
 								 }
@@ -10527,7 +10595,7 @@ module OneM2M_Testcases {
  
 							  //Check that the resource has been udpated correctly
 							  if(ischosen(v_primitiveContentRetrieveResource.aE)) {
-							   if(v_primitiveContentRetrieveResource.aE.accessControlPolicyIDs != v_acpType){
+							   if(v_primitiveContentRetrieveResource.aE.accessControlPolicyIDs != valueof(v_acpType)){
 								setverdict(fail, __SCOPE__ & ": Error: Access control policy IDs attribute not updated correctly")
 							  }
 							}
@@ -10535,13 +10603,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_AE_APN() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var XSD.String v_appName := "MyAppName";
 						var template RequestPrimitive v_updateRequest := m_updateAE;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.aE.appName := v_appName;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int2, m_createAe(PX_APP_ID), v_updateRequest, v_primitiveContentRetrieveResource);//AE
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int2, m_createAe(PX_APP_ID), v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//AE
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10562,13 +10631,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_AE_POA() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var PoaList v_poaList := {"http://" & PX_AE2_ADDRESS & "/"};
 						var template RequestPrimitive v_updateRequest := m_updateAE;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.aE.pointOfAccess := v_poaList;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int2, m_createAe(PX_APP_ID), v_updateRequest, v_primitiveContentRetrieveResource);//AE
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int2, m_createAe(PX_APP_ID), v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//AE
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10589,13 +10659,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_AE_OR() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var XSD.AnyURI v_ontoLogyRef := "MyOntologyRef";
 						var template RequestPrimitive v_updateRequest := m_updateAE;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.aE.ontologyRef := v_ontoLogyRef;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int2, m_createAe(PX_APP_ID), v_updateRequest, v_primitiveContentRetrieveResource);//AE
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int2, m_createAe(PX_APP_ID), v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//AE
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10616,6 +10687,7 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_CNT_LBL() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var Labels v_labels := {"MyLabel"};
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -10623,7 +10695,7 @@ module OneM2M_Testcases {
 						
 						v_updateRequest.primitiveContent.container.labels := v_labels;
 						
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource);//Container
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Container
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10651,12 +10723,12 @@ module OneM2M_Testcases {
 						
 						v_updateRequest.primitiveContent.container.accessControlPolicyIDs := v_acpType;
 						
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource);//Container
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType, true);//Container
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
 								 if(ischosen(v_responsePrimitive.primitiveContent.container)) {
-									 if(v_responsePrimitive.primitiveContent.container.accessControlPolicyIDs != v_acpType){
+									 if(v_responsePrimitive.primitiveContent.container.accessControlPolicyIDs != valueof(v_acpType)){
 										 setverdict(fail, __SCOPE__, ": Error: Access Control Policy IDs attribute not updated correctly")
 									 }
 								 }
@@ -10664,7 +10736,7 @@ module OneM2M_Testcases {
 	 
 							  //Check that the resource has been udpated correctly
 							  if(ischosen(v_primitiveContentRetrieveResource.container)) {
-							   if(v_primitiveContentRetrieveResource.container.accessControlPolicyIDs != v_acpType){
+							   if(v_primitiveContentRetrieveResource.container.accessControlPolicyIDs != valueof(v_acpType)){
 								setverdict(fail, __SCOPE__ & ": Error: Access Control Policy IDs attribute not updated correctly")
 							  }
 							}
@@ -10672,6 +10744,7 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_CNT_MNI() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var XSD.NonNegativeInteger v_maxNrOfInstances := 5;
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -10679,7 +10752,7 @@ module OneM2M_Testcases {
 						
 						v_updateRequest.primitiveContent.container.maxNrOfInstances := v_maxNrOfInstances;
 						
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource);//Container
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Container
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10700,6 +10773,7 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_CNT_MBS() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var XSD.NonNegativeInteger v_maxByteSize := 512;
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -10707,7 +10781,7 @@ module OneM2M_Testcases {
 						
 						v_updateRequest.primitiveContent.container.maxByteSize := v_maxByteSize;
 						
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource);//Container
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Container
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10728,6 +10802,7 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_CNT_MIA() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var XSD.NonNegativeInteger v_maxInstanceAge := 1;
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -10735,7 +10810,7 @@ module OneM2M_Testcases {
 						
 						v_updateRequest.primitiveContent.container.maxInstanceAge := v_maxInstanceAge;
 						
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource);//Container
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Container
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10756,6 +10831,7 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_CNT_OR() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var XSD.AnyURI v_ontoLogyRef := "MyOntologyRef";
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -10763,7 +10839,7 @@ module OneM2M_Testcases {
 						
 						v_updateRequest.primitiveContent.container.ontologyRef := v_ontoLogyRef;
 						
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource);//Container
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Container
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10784,6 +10860,7 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_CNT_LI() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var XSD.AnyURI v_locationID := "MyLocationID";
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -10791,7 +10868,7 @@ module OneM2M_Testcases {
 						
 						v_updateRequest.primitiveContent.container.locationID := v_locationID;
 						
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource);//Container
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int3, m_createContainerBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Container
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10812,6 +10889,7 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_ACP_LBL() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var Labels v_labels := {"MyLabel"};
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -10819,7 +10897,7 @@ module OneM2M_Testcases {
 						
 						v_updateRequest.primitiveContent.accessControlPolicy.labels := v_labels;
 						
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int1, m_createAcpBase, v_updateRequest, v_primitiveContentRetrieveResource);//AccessControlPolicy
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int1, m_createAcpBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//AccessControlPolicy
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10847,12 +10925,12 @@ module OneM2M_Testcases {
 						
 						v_updateRequest.primitiveContent.subscription.accessControlPolicyIDs := v_acpType;
 						
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource);//Subscription
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType, true);//Subscription
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
 								 if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
-									 if(v_responsePrimitive.primitiveContent.subscription.accessControlPolicyIDs != v_acpType){
+									 if(v_responsePrimitive.primitiveContent.subscription.accessControlPolicyIDs != valueof(v_acpType)){
 										 setverdict(fail, __SCOPE__, ": Error: Access Control Policy IDs attribute not updated correctly")
 									 }
 								 }
@@ -10860,7 +10938,7 @@ module OneM2M_Testcases {
 	 
 							  //Check that the resource has been udpated correctly
 							  if(ischosen(v_primitiveContentRetrieveResource.subscription)) {
-							   if(v_primitiveContentRetrieveResource.subscription.accessControlPolicyIDs != v_acpType){
+							   if(v_primitiveContentRetrieveResource.subscription.accessControlPolicyIDs != valueof(v_acpType)){
 								setverdict(fail, __SCOPE__ & ": Error: Access Control Policy IDs attribute not updated correctly")
 							  }
 							}
@@ -10868,13 +10946,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_SUB_LBL() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var Labels v_labels := {"MyLabel"};
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.subscription.labels := v_labels;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource);//Subscription
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Subscription
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10895,13 +10974,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_SUB_ENC() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var EventNotificationCriteria v_eventNotificationCriteria:= valueof(m_eventNotificationCriteria({int3}, -));
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.subscription.eventNotificationCriteria:=v_eventNotificationCriteria ;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource);//Subscription
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Subscription
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10922,13 +11002,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_SUB_EXC() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var XSD.PositiveInteger v_expirationCounter:=10;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.subscription.expirationCounter:=v_expirationCounter;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource);//Subscription
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Subscription
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10949,13 +11030,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_SUB_GPI() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var XSD.AnyURI v_groupID := "MyGroupID";
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.subscription.groupID:=v_groupID;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource);//Subscription
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Subscription
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -10976,13 +11058,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_SUB_NFU() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var XSD.AnyURI v_notificationForwardingURI:= "MyNotificationForwardingURI";
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.subscription.notificationForwardingURI:=v_notificationForwardingURI;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource);//Subscription
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Subscription
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -11003,13 +11086,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_SUB_BN() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var BatchNotify v_batchNotify:= {1, "PT1S"};
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.subscription.batchNotify:=v_batchNotify;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource);//Subscription
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Subscription
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -11030,13 +11114,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_SUB_RL() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var RateLimit v_rateLimit:= {2, "PT1S"};
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.subscription.rateLimit:=v_rateLimit;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource);//Subscription
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Subscription
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -11057,13 +11142,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_SUB_PN() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var PendingNotification v_pendingNotification:=int2;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.subscription.pendingNotification:=v_pendingNotification;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource);//Subscription
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Subscription
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -11084,13 +11170,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_SUB_NSP() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var XSD.PositiveInteger v_notificationStoragePriority:=10;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.subscription.notificationStoragePriority:=v_notificationStoragePriority;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource);//Subscription
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Subscription
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -11111,13 +11198,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_SUB_LN() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var XSD.Boolean v_latestNotify:=true;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.subscription.latestNotify:=v_latestNotify;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource);//Subscription
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Subscription
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -11138,13 +11226,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_SUB_NEC() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var EventCat v_eventCat:= {alt_1:= 300};
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.subscription.notificationEventCat:=v_eventCat;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource);//Subscription
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int23, m_createSubscriptionBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Subscription
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -11165,13 +11254,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_GRP_LBL() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var Labels v_labels := {"MyLabel"};
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.group_.labels := v_labels;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int9, m_createGroupBase, v_updateRequest, v_primitiveContentRetrieveResource);//Group
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int9, m_createGroupBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Group
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -11198,12 +11288,12 @@ module OneM2M_Testcases {
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.group_.accessControlPolicyIDs := v_acpType;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int9, m_createGroupBase, v_updateRequest, v_primitiveContentRetrieveResource);//Group
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int9, m_createGroupBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType, true);//Group
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
 								 if(ischosen(v_responsePrimitive.primitiveContent.group_)) {
-									 if(v_responsePrimitive.primitiveContent.group_.accessControlPolicyIDs != v_acpType){
+									 if(v_responsePrimitive.primitiveContent.group_.accessControlPolicyIDs != valueof(v_acpType)){
 										 setverdict(fail, __SCOPE__, ": Error: Access Control Policy IDs attribute not updated correctly")
 									 }
 								 }
@@ -11211,7 +11301,7 @@ module OneM2M_Testcases {
  
 												  //Check that the resource has been udpated correctly
 							  if(ischosen(v_primitiveContentRetrieveResource.group_)) {
-							   if(v_primitiveContentRetrieveResource.group_.accessControlPolicyIDs != v_acpType){
+							   if(v_primitiveContentRetrieveResource.group_.accessControlPolicyIDs != valueof(v_acpType)){
 								setverdict(fail, __SCOPE__ & ": Error: Access Control Policy IDs attribute not updated correctly")
 							  }
 							}
@@ -11219,13 +11309,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_GRP_MACP() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var ListOfURIs v_membersAccessControlPolicyIDs := {"NotInitialized"};
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.group_.membersAccessControlPolicyIDs := v_membersAccessControlPolicyIDs;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int9, m_createGroupBase, v_updateRequest, v_primitiveContentRetrieveResource);//Group
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int9, m_createGroupBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Group
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -11246,13 +11337,14 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_017_GRP_GN() runs on CseTester system CseSystem {
+						var AcpType v_acpType;
 						var XSD.String v_groupName:="MyGroupName";
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
 						v_updateRequest.primitiveContent.group_.groupName := v_groupName;
-						v_responsePrimitive := f_CSE_DMR_UPD_017(int9, m_createGroupBase, v_updateRequest, v_primitiveContentRetrieveResource);//Group
+						v_responsePrimitive := f_CSE_DMR_UPD_017(int9, m_createGroupBase, v_updateRequest, v_primitiveContentRetrieveResource, v_acpType);//Group
 						if(getverdict == pass){
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -11272,7 +11364,7 @@ module OneM2M_Testcases {
 						 }
 					}
 					
-					function f_CSE_DMR_UPD_017(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, out PrimitiveContent p_primitiveContentRetrievedResource) runs on CseTester return ResponsePrimitive {
+					function f_CSE_DMR_UPD_017(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, out PrimitiveContent p_primitiveContentRetrievedResource, out AcpType p_acpi, boolean p_secondAcp := false) runs on CseTester return ResponsePrimitive {
 						//Local variables
 						var MsgIn v_response;
 						var RequestPrimitive v_request;
@@ -11280,7 +11372,9 @@ module OneM2M_Testcases {
 						var integer v_resourceIndex := -1;
 						var CseTester v_notifyHandler;
 						var integer v_ae2Index := -1;
-   
+						var integer v_acpAuxIndex := -1;
+						var integer v_acpIndex := -1;
+						   
 						// Test control
 
 						// Test component configuration
@@ -11290,7 +11384,23 @@ module OneM2M_Testcases {
 
 						// Preamble
 						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
- 
+
+						if(p_resourceType != int1) {
+							
+							v_acpAuxIndex := f_cse_createAccessControlPolicyAux(-, -, -);
+						
+							p_createRequestPrimitive := f_setAcpId(p_createRequestPrimitive, {vc_resourcesList[v_acpAuxIndex].resource.accessControlPolicy.resourceID});
+						}
+						
+						if(p_secondAcp) {//A second ACP is required
+							v_acpIndex := f_cse_createResource(int1, m_createAcpBase);
+							
+							p_acpi := {vc_resourcesList[v_acpIndex].resource.accessControlPolicy.resourceID};
+							
+							p_updateRequestPrimitive := f_setAcpId(p_updateRequestPrimitive, p_acpi);
+							
+						}
+  
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 	
 							f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType);
@@ -11567,7 +11677,7 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_018_ACP_PV() runs on CseTester system CseSystem {
-						var SetOfAcrs v_privileges_1 := {{valueof(m_createAcr({PX_SUPER_USER}, int61))}};
+						var SetOfAcrs v_privileges_1 := {{valueof(m_createAcr({PX_SUPER_AE_ID}, int61))}};
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -11594,7 +11704,7 @@ module OneM2M_Testcases {
 					}
 					
 					testcase TC_CSE_DMR_UPD_018_ACP_PVS() runs on CseTester system CseSystem {
-						var SetOfAcrs v_privileges_1 := {{valueof(m_createAcr({PX_SUPER_USER}, int61))}};
+						var SetOfAcrs v_privileges_1 := {{valueof(m_createAcr({PX_SUPER_AE_ID}, int61))}};
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -11796,7 +11906,8 @@ module OneM2M_Testcases {
 						 var integer v_resourceIndex := -1;
 						 var CseTester v_notifyHandler;
 						 var integer v_ae2Index := -1;
-						   
+						var integer v_acpAuxIndex := -1;
+							   
 						 // Test control
 
 						 // Test component configuration
@@ -11806,7 +11917,14 @@ module OneM2M_Testcases {
 
 						 // Preamble
 						 v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
-						 
+						
+						if(p_resourceType != int1) {
+							
+							v_acpAuxIndex := f_cse_createAccessControlPolicyAux(-, -, -);
+						
+							p_createRequestPrimitive := f_setAcpId(p_createRequestPrimitive, {vc_resourcesList[v_acpAuxIndex].resource.accessControlPolicy.resourceID});
+						}
+												 
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 							
 						 f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType);
@@ -11941,8 +12059,8 @@ module OneM2M_Testcases {
 						v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); 				
                 												
 						// Test Body
-						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex)));
-                		
+						v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
+						                		
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
 						alt {
@@ -12026,7 +12144,7 @@ module OneM2M_Testcases {
 						var integer v_resourceIndex := -1;
 						var CseTester v_notifyHandler;
 						var integer v_ae2Index := -1;
-						var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_USER}, int63));
+						var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_AE_ID}, int63));
 						var AccessControlRule v_accessControlRule_2;
 						var SetOfAcrs v_setOfArcs;
                 							   
@@ -12066,7 +12184,7 @@ module OneM2M_Testcases {
 						v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); 				
                 												
 						// Test Body
-						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex)));
+						v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
 						v_request.from_ := f_getOriginator(v_aeIndex);
                 		
 						mcaPort.send(m_request(v_request));
@@ -12100,8 +12218,7 @@ module OneM2M_Testcases {
                 					
 						// Postamble
 						// We are forced to delete the Ae because the delete request in the postamble_deleteResources is sent by Ae itself, witch doesn't have privileges
-						f_cse_deleteResource(v_aeIndex);
-						
+						f_cse_deleteResource(v_aeIndex, m_delete(f_getResourceAddress(v_aeIndex), f_getOriginator()));//Use of PX_SUPER_AE_ID to remove AE						
 						f_cse_postamble_deleteResources();
                 		
 						// Tear down
@@ -12137,9 +12254,9 @@ module OneM2M_Testcases {
                 												
 						// Test Body
 						if(vc_addressingMethod == e_nonHierarchical and (vc_primitiveScope == e_cseRelative)) {
-							v_request := valueof(m_deleteRequest(v_resourceIdOrName));
+							v_request := valueof(m_delete(v_resourceIdOrName, f_getOriginator(v_aeIndex)));
 						} else {
-							v_request := valueof(m_deleteRequest(f_getResourceAddress(v_aeIndex) & "/" & v_resourceIdOrName));
+							v_request := valueof(m_delete(f_getResourceAddress(v_aeIndex) & "/" & v_resourceIdOrName, f_getOriginator(v_aeIndex)));
 						}
                 		
 						mcaPort.send(m_request(v_request));
@@ -12242,7 +12359,7 @@ module OneM2M_Testcases {
 						f_cse_deleteResource(v_resourceIndex);
                 		
 						// Test Body
-						mcaPort.send(m_request(m_deleteRequest(f_getResourceAddress(v_childResourceIndex), f_getOriginator(v_childResourceIndex))));
+						mcaPort.send(m_request(m_delete(f_getResourceAddress(v_childResourceIndex), f_getOriginator(v_childResourceIndex))));
                 
 						tc_ac.start;
 						alt {
@@ -12304,8 +12421,8 @@ module OneM2M_Testcases {
 							v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); 
             				
 							// Test Body
-							v_request := valueof(m_deleteRequest(f_getResourceAddress(v_childResourceIndex)));
-            	
+							mcaPort.send(m_request(m_delete(f_getResourceAddress(v_childResourceIndex), f_getOriginator(v_childResourceIndex))));
+							            	
 							mcaPort.send(m_request(v_request));
 							tc_ac.start;
 							alt {
@@ -12456,8 +12573,8 @@ module OneM2M_Testcases {
 						v_contentInstanceIndex_2 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex);
 							
 						// Test Body
-						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameLatest));
-            	
+						v_request := valueof(m_delete(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameLatest, f_getOriginator(v_containerIndex)));
+						            	
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
 						alt {
@@ -12534,7 +12651,7 @@ module OneM2M_Testcases {
 						v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); 
 							
 						// Test Body
-						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameLatest));
+						v_request := valueof(m_delete(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameLatest, f_getOriginator(v_containerIndex)));
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
 						alt {
@@ -12596,8 +12713,8 @@ module OneM2M_Testcases {
 						v_contentInstanceIndex_2 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex);
 							
 						// Test Body
-						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameOldest));
-            	
+						v_request := valueof(m_delete(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameOldest, f_getOriginator(v_containerIndex)));
+						            	
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
 						alt {
@@ -12674,7 +12791,7 @@ module OneM2M_Testcases {
 						v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); 
 							
 						// Test Body
-						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameOldest));
+						v_request := valueof(m_delete(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameOldest, f_getOriginator(v_containerIndex)));
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
 						alt {
@@ -14045,7 +14162,7 @@ module OneM2M_Testcases {
 						var template PrimitiveContent v_contentResponse;
 						v_contentResponse.aE := mw_contentAeBase;// TODO see with wath should it be matched
 						
-						f_CSE_GMG_CRE_008(m_deleteRequest("Temporary"), v_contentResponse, int2002);	
+						f_CSE_GMG_CRE_008(m_delete("Temporary", "Temporary"), v_contentResponse, int2002);	
 					}//end TC_CSE_GMG_CRE_008_DEL
 	
 					function f_CSE_GMG_CRE_008(template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse, in ResponseStatusCode p_responseStatusCode) runs on CseTester {
@@ -15185,7 +15302,7 @@ module OneM2M_Testcases {
 					}//end TC_CSE_GMG_001_RET
 	
 					testcase TC_CSE_GMG_001_DEL() runs on CseTester system CseSystem { //Delete
-						f_CSE_GMG_001(m_deleteRequest("Temporary"), int2002);	
+						f_CSE_GMG_001(m_delete("Temporary", "Temporary"), int2002);	
 					}//end TC_CSE_GMG_001_DEL
 	
 					function f_CSE_GMG_001(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on CseTester {
@@ -15289,7 +15406,7 @@ module OneM2M_Testcases {
 					}//end TC_CSE_GMG_002_RET
 	
 					testcase TC_CSE_GMG_002_DEL() runs on CseTester system CseSystem { //Delete
-						f_CSE_GMG_002(m_deleteRequest("Temporary"), int55); //c_CRUNDi	
+						f_CSE_GMG_002(m_delete("Temporary", "Temporary"), int55); //c_CRUNDi	
 					}//end TC_CSE_GMG_002_DEL
 		
 					function f_CSE_GMG_002(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_accessControlOperations) runs on CseTester {
@@ -15381,7 +15498,7 @@ module OneM2M_Testcases {
 					}//end TC_CSE_GMG_003_RET
 	
 					testcase TC_CSE_GMG_003_DEL() runs on CseTester system CseSystem { //Delete
-						f_CSE_GMG_003(m_deleteRequest("Temporary"), int2002);	
+						f_CSE_GMG_003(m_delete("Temporary", "Temporary"), int2002);	
 					}//end TC_CSE_GMG_003_DEL
 	
 					function f_CSE_GMG_003(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on CseTester {
@@ -15485,7 +15602,7 @@ module OneM2M_Testcases {
 					}//end TC_CSE_GMG_004_RET
 	
 					testcase TC_CSE_GMG_004_DEL() runs on CseTester system CseSystem { //Delete
-						f_CSE_GMG_004(m_deleteRequest("Temporary"), int55); //c_CRUNDi	
+						f_CSE_GMG_004(m_delete("Temporary", "Temporary"), int55); //c_CRUNDi	
 					}//end TC_CSE_GMG_004_DEL
 	
 					function f_CSE_GMG_004(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_accessControlOperations) runs on CseTester {
@@ -17185,8 +17302,8 @@ module OneM2M_Testcases {
 	
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex); // Subsciption
 					
-					v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex))); // Subscription resource deletion request
-					
+					v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); // Subscription resource deletion request
+										
 					if(v_notifyHandler.running) {
 						v_notifyHandler.stop;
 					};
@@ -17294,8 +17411,8 @@ module OneM2M_Testcases {
 					//Test Body
 					v_notifyHandler.start(f_cse_notifyProcedure_subscriptionDeletionHandler(v_contentNotification)); // check if the notification is well received and if its content matchs
 					
-					v_deleteRequest:= valueof(m_deleteRequest(f_getResourceAddress(v_aeIndex))); // Ae delete request
-					
+					v_deleteRequest:= valueof(m_delete(f_getResourceAddress(v_aeIndex), f_getOriginator(v_aeIndex))); // Ae delete request
+										
 					mcaPort.send(m_request(v_deleteRequest));
 					tc_ac.start;
 					alt {
@@ -17367,8 +17484,8 @@ module OneM2M_Testcases {
 					//Test Body
 					v_notifyHandler.start(f_cse_notifyProcedure_representationHandler(v_contentNotification)); // check if the notification is well received and if its content matchs
 					
-					v_deleteRequest := valueof(m_deleteRequest(f_getResourceAddress(v_containerResourceIndex)));// Container deletion request
-					
+					v_deleteRequest := valueof(m_delete(f_getResourceAddress(v_containerResourceIndex), f_getOriginator(v_containerResourceIndex)));// Container deletion request
+										
 					mcaPort.send(m_request(v_deleteRequest));
 					tc_ac.start;
 					alt {
@@ -17420,8 +17537,8 @@ module OneM2M_Testcases {
 						var integer v_acpIndex := -1;
 						var template PrimitiveContent v_contentResponse;
 						var RequestPrimitive v_createRequest := valueof(m_createAcpBase);
-						var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_USER}, int63));
-						var AccessControlRule v_accessControlRule_2 := valueof(m_createAcr({"wait"}, int55));
+						var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_AE_ID}, int63));
+						var AccessControlRule v_accessControlRule_2 := valueof(m_createAcr({"Temporary"}, int55));
 						const ResourceType c_accessControlPolicyType := int1;
 
 						// Test control
@@ -17492,8 +17609,8 @@ module OneM2M_Testcases {
 						var integer v_acpIndex := -1;
 						var template PrimitiveContent v_contentResponse;
 						var RequestPrimitive v_createRequest := valueof(m_createAcpBase);
-						var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_USER}, int63));
-						var AccessControlRule v_accessControlRule_2 := valueof(m_createAcr({"wait"}, int55));
+						var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_AE_ID}, int63));
+						var AccessControlRule v_accessControlRule_2 := valueof(m_createAcr({"Temporary"}, int55));
 						const ResourceType c_accessControlPolicyType := int1;
 
 						// Test control
@@ -17591,7 +17708,7 @@ module OneM2M_Testcases {
 						v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex1].resource)}, -);
 
 						v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int59)); // c_CRUDNDi
-						v_accessControlRule_2 := valueof(m_createAcr({PX_SUPER_USER, f_getOriginator(v_aeIndex)}, int63)); // c_CRDNDi 
+						v_accessControlRule_2 := valueof(m_createAcr({PX_SUPER_AE_ID, f_getOriginator(v_aeIndex)}, int63)); // c_CRDNDi 
 						v_setOfArcs_1.accessControlRule_list := {v_accessControlRule_1};
 						v_setOfArcs_2.accessControlRule_list := {v_accessControlRule_2};
 						v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs_1, v_setOfArcs_2));
@@ -17672,7 +17789,7 @@ module OneM2M_Testcases {
 						v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex1].resource)}, -);
 
 						v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int63)); // c_CRDNDi
-						v_accessControlRule_2 := valueof(m_createAcr({PX_SUPER_USER, f_getOriginator(v_aeIndex)}, int59)); // c_CRUDNDi 
+						v_accessControlRule_2 := valueof(m_createAcr({PX_SUPER_AE_ID, f_getOriginator(v_aeIndex)}, int59)); // c_CRUDNDi 
 						v_setOfArcs_1.accessControlRule_list := {v_accessControlRule_1};
 						v_setOfArcs_2.accessControlRule_list := {v_accessControlRule_2};
 						v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs_1, v_setOfArcs_2));
@@ -17746,7 +17863,7 @@ module OneM2M_Testcases {
 						}//end TC_CSE_SEC_ACP_001_RET
 	
 						testcase TC_CSE_SEC_ACP_001_DEL() runs on CseTester system CseSystem { //Delete
-							f_CSE_SEC_ACP_001(m_deleteRequest("Temporary"));	
+							f_CSE_SEC_ACP_001(m_delete("Temporary", "Temporary"));	
 						}//end TC_CSE_SEC_ACP_001_DEL
 	
 						function f_CSE_SEC_ACP_001(template RequestPrimitive p_requestPrimitive) runs on CseTester {
@@ -17770,7 +17887,7 @@ module OneM2M_Testcases {
 							v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource
 							v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -);
 			
-							v_accessControlRule_1 := valueof(m_createAcr({ f_getOriginator(v_aeIndex), PX_SUPER_USER}, int63));
+							v_accessControlRule_1 := valueof(m_createAcr({ f_getOriginator(v_aeIndex), PX_SUPER_AE_ID}, int63));
 							v_setOfArcs.accessControlRule_list := {v_accessControlRule_1};
 							v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, v_setOfArcs));
 							v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex, v_updateRequest);
@@ -17832,7 +17949,7 @@ module OneM2M_Testcases {
 						}//end TC_CSE_SEC_ACP_002_RET
 	
 						testcase TC_CSE_SEC_ACP_002_DEL() runs on CseTester system CseSystem { //Delete
-							f_CSE_SEC_ACP_002(m_deleteRequest("Temporary"), int2002);	
+							f_CSE_SEC_ACP_002(m_delete("Temporary", "Temporary"), int2002);	
 						}//end TC_CSE_SEC_ACP_002_DEL
 	
 						function f_CSE_SEC_ACP_002(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on CseTester {
@@ -17929,7 +18046,7 @@ module OneM2M_Testcases {
 						}//end TC_CSE_SEC_ACP_003_03
 						
 						testcase TC_CSE_SEC_ACP_003_DEL() runs on CseTester system CseSystem { //Delete
-							f_CSE_SEC_ACP_003(m_deleteRequest("Temporary"), int2002);	
+							f_CSE_SEC_ACP_003(m_delete("Temporary", "Temporary"), int2002);	
 						}//end TC_CSE_SEC_ACP_003_04
 		
 						function f_CSE_SEC_ACP_003(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on CseTester{
@@ -18032,7 +18149,7 @@ module OneM2M_Testcases {
 						}//end TC_CSE_SEC_ACP_004_RET
 		
 						testcase TC_CSE_SEC_ACP_004_DEL() runs on CseTester system CseSystem { //Delete
-							f_CSE_SEC_ACP_004(m_deleteRequest("Temporary"), int2002);	
+							f_CSE_SEC_ACP_004(m_delete("Temporary", "Temporary"), int2002);	
 						}//end TC_CSE_SEC_ACP_004_DEL
 	
 						function f_CSE_SEC_ACP_004(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on CseTester{
@@ -18112,7 +18229,7 @@ module OneM2M_Testcases {
 						}//end TC_CSE_SEC_ACP_011_RET
 	
 						testcase TC_CSE_SEC_ACP_011_DEL() runs on CseTester system CseSystem { //Delete
-							f_CSE_SEC_ACP_011(m_deleteRequest("Temporary"), int2002);	
+							f_CSE_SEC_ACP_011(m_delete("Temporary", "Temporary"), int2002);	
 						}//end TC_CSE_SEC_ACP_011_DEL
 	
 						function f_CSE_SEC_ACP_011(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on CseTester {
@@ -18188,7 +18305,7 @@ module OneM2M_Testcases {
 						}//end TC_CSE_SEC_ACP_012_RET
 	
 						testcase TC_CSE_SEC_ACP_012_DEL() runs on CseTester system CseSystem { //Delete
-							f_CSE_SEC_ACP_012(m_deleteRequest("Temporary"), int62);	//TODO Fix p_acor
+							f_CSE_SEC_ACP_012(m_delete("Temporary", "Temporary"), int62);	//TODO Fix p_acor
 						}//end TC_CSE_SEC_ACP_012_DEL
 	
 						function f_CSE_SEC_ACP_012(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_acor) runs on CseTester {
@@ -18215,7 +18332,7 @@ module OneM2M_Testcases {
 							v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -);
 							v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex);
 							
-							v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_USER}, int63));
+							v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_AE_ID}, int63));
 							v_accessControlRule_2 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, p_acor));
 							v_setOfArcs.accessControlRule_list := {v_accessControlRule_1, v_accessControlRule_2};
 							v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -));