diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index ee78a1dfc93bff850a9cc0d1271d03e08247db72..20b3e13192e37803e5a18f28de009dfe113e260f 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -3658,7 +3658,7 @@ module OneM2M_Functions {
 						vc_localResourcesList[p_localResourceIndex].resource.remoteCSE.labels := p_resource.remoteCSE.labels;
 					}
 					if(ispresent(p_resource.remoteCSE.announceTo)) {
-						v_primitiveContent := {remoteCSEAnnc := m_contentCreateRemoteCSEAnnc};
+						v_primitiveContent := {remoteCSEAnnc := valueof(m_contentCreateRemoteCSEAnnc)};
 						v_primitiveContent := f_setLink(v_primitiveContent, f_getLocalResourceAddress(p_localResourceIndex));
 						vc_cse2.start(f_generateAndSetLocalResource(m_primitiveContentRemoteCSEAnnc(v_primitiveContent.remoteCSEAnnc), -, int10016));
 						f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2);
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 62d8b2342d698e3094b16de7b6aad792edf89293..c332349daa79eb5e09c505010ed344344f600fb0 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -897,7 +897,7 @@ module OneM2M_Templates {
 			 * @param p_appId
 			 * @param p_stemId
 			 */
-			template (value) RequestPrimitive m_createAEAnnc(template (omit) AcpType p_accessControlPolicyIds := omit, XSD.ID p_parentResourceAddress, template (omit) XSD.ID p_from := omit, XSD.ID p_appId, XSD.ID p_stemId := "") modifies m_create:= {
+			template (value) RequestPrimitive m_createAEAnnc(template (omit) AcpType p_accessControlPolicyIds := omit, XSD.ID p_parentResourceAddress, template (omit) XSD.ID p_from := omit, template (omit) XSD.ID p_appId, XSD.ID p_stemId := "") modifies m_create:= {
 				to_ := p_parentResourceAddress,
 				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
 				requestIdentifier := testcasename() & "-m_createAEAnnc",
@@ -913,11 +913,11 @@ module OneM2M_Templates {
 			 * @param p_appId
 			 * @param p_stemId
 			 */
-			template (value) RequestPrimitive m_createAEAnncBase(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) XSD.ID p_from := omit, XSD.ID p_appId, XSD.ID p_stemId := "") modifies m_create:= {
+			template (value) RequestPrimitive m_createAEAnncBase(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) XSD.ID p_from := omit, template (omit) XSD.ID p_appId, XSD.AnyURI p_link := "NotInitialized") modifies m_create:= {
 				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
 				requestIdentifier := testcasename() & "-m_createAEAnnc",
 				resourceType := int10002,
-				primitiveContent := {aEAnnc := m_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds, p_appId, p_stemId)}
+				primitiveContent := {aEAnnc := m_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds, p_appId, p_link)}
 			};
 			
 			/**
@@ -2394,33 +2394,33 @@ module OneM2M_Templates {
 		 * @param p_appId App ID
 		 * @param p_nodeLink Node link
 		 */
-		template AEAnnc_optional m_contentCreateAEAnnc (in template (omit)  Labels p_labels, in template (omit) AcpType p_accessControlPolicyIds, XSD.ID p_appId := PX_TS_AE1.appId, in XSD.AnyURI p_link := "") := {
-			resourceName := omit,//O TODO 
-			resourceType := omit,//NP
-			resourceID := omit,//NP
-			parentID := omit,//NP
-			creationTime := omit,//NP
-			lastModifiedTime := omit,//NP
-			labels := p_labels,//O
-			accessControlPolicyIDs := p_accessControlPolicyIds,//O
-			expirationTime := "20301231T012345",//O
+		template (value) AEAnnc_optional m_contentCreateAEAnnc (in template (omit)  Labels p_labels, in template (omit) AcpType p_accessControlPolicyIds, template (omit) XSD.ID p_appId := PX_TS_AE1.appId, in template (omit) XSD.AnyURI p_link := omit) := {
+			resourceName := omit,//NA 
+			resourceType := omit,//NA
+			resourceID := omit,//NA
+			parentID := omit,//NA
+			creationTime := omit,//NA
+			lastModifiedTime := omit,//NA
+			labels := p_labels,//MA
+			accessControlPolicyIDs := p_accessControlPolicyIds,//MA Special case, mandatory for announced resources
+			expirationTime := "20301231T012345",//MA
 			link := p_link,//M TODO Put the right value
 			dynamicAuthorizationConsultationIDs := omit, //TODO Check whether it is optional or mandatory for create operation			
-			appName := omit,//O
-			app_ID := p_appId,//M
-			aE_ID := omit,//NP
+			appName := omit,//OA
+			app_ID := p_appId,//OA
+			aE_ID := omit,//OA
 			pointOfAccess := omit, //{"http://127.0.0.1:1400/monitor"},//O //{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA
-			ontologyRef := omit,//O
-			nodeLink := omit,//NP
-			requestReachability := false,//M
-			contentSerialization := omit,//O
-			e2eSecInfo := omit, //O TODO Check whether it is optional or mandatory for create operation
-			supportedReleaseVersions := {"3"}, //M
-			registrationStatus := omit,//O
-			trackRegistrationPoints := omit,//O
-			sessionCapabilities := omit,//O
-			triggerEnable := omit,//O
-			activityPatternElements := omit,//O
+			ontologyRef := omit,//OA
+			nodeLink := omit,//OA
+			requestReachability := omit,//OA
+			contentSerialization := omit,//OA
+			e2eSecInfo := omit, //MA TODO Check whether it is optional or mandatory for create operation
+			supportedReleaseVersions := omit, //MA
+			registrationStatus := omit,//OA
+			trackRegistrationPoints := omit,//OA
+			sessionCapabilities := omit,//OA
+			triggerEnable := omit,//OA
+			activityPatternElements := omit,//OA
 			choice := omit//NP
 		};	
 
@@ -2442,7 +2442,7 @@ module OneM2M_Templates {
     		accessControlPolicyIDs := p_accessControlPolicyIds,//MA O
     		expirationTime := ?,//MA M
 			link := p_link,//M
-    		dynamicAuthorizationConsultationIDs := omit, //OA O			
+    		dynamicAuthorizationConsultationIDs := *, //OA O			
 			appName := *,//OA O
 			app_ID := *,//OA M
 			aE_ID := *,//OA M
@@ -6062,27 +6062,27 @@ module OneM2M_Templates {
 		};
     	
 		template AEAnnc_optional mw_contentAeAnnc_base := {
-			resourceName := ?,//M
-			resourceType := ?,//M
-			resourceID := ?,//M
-			parentID := ?,//M
-			creationTime := ?,//M
-			lastModifiedTime := ?,//M
-			labels := *,//O
-			accessControlPolicyIDs := *,//O
-			expirationTime := ?,//M
+			resourceName := ?,//M NA
+			resourceType := ?,//M NA
+			resourceID := ?,//M NA
+			parentID := ?,//M NA
+			creationTime := ?,//M NA
+			lastModifiedTime := ?,//M NA
+			labels := *,//O MA
+			accessControlPolicyIDs := *,//O MA Special case: acpi mandatory for announced resources
+			expirationTime := ?,//M MA
 			link := ?,//M,
-			dynamicAuthorizationConsultationIDs := *, //O
-			appName := *,//O
-			app_ID := ?,//M
-			aE_ID := ?,//M
-			pointOfAccess := *,//O
-			ontologyRef := *,//O
-			nodeLink := *,//O
-			requestReachability := ?,//M
-			contentSerialization := *,//O
-			e2eSecInfo:= *, //O
-			supportedReleaseVersions := ?,//M
+			dynamicAuthorizationConsultationIDs := *, //O OA
+			appName := *,//O OA
+			app_ID := *,//M OA
+			aE_ID := *,//M OA
+			pointOfAccess := *,//O OA
+			ontologyRef := *,//O OA
+			nodeLink := *,//O OA
+			requestReachability := *,//M OA
+			contentSerialization := *,//O OA
+			e2eSecInfo:= *, //O MA
+			supportedReleaseVersions := *,//O MA
 			registrationStatus := *,//O,
 			trackRegistrationPoints := *,//O,
 			sessionCapabilities := *,//O,
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index b9feccdc0b83e2340a697925d706ce15d7e17ca5..2c66d5d8920c7b9c1ddf79f61af8f8e48b34d964 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -5962,10 +5962,13 @@ module OneM2M_PermutationFunctions {
 						// Preamble
 						v_acpAuxIndex := f_cse_preamble_createAcpAux(-, int59);//c_CRDNDi)
 						
-						v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -);//c_CRDNDi);
+						v_aeIndex := f_cse_preamble_registerAe(-, -);
 						
 						f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType);
 						
+						if(p_resourceType != int1) {
+							p_createRequestPrimitive := f_setAcpId(p_createRequestPrimitive,{f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)});//c_CRDNDi);
+						}
 						if(p_resourceType != int18) {
 							v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent
 						}
@@ -8019,9 +8022,9 @@ module OneM2M_PermutationFunctions {
 				tc_ac.start;
 				alt {
 	
-					[] mcaPort.receive(mw_response(mw_responsePrimitive(int4102))) -> value v_response {
+					[] mcaPort.receive(mw_response(mw_responseDiscovery({}))) -> value v_response {
 						tc_ac.stop;
-						setverdict(pass, __SCOPE__ & ": Contents Unacceptable");
+						setverdict(pass, __SCOPE__ & ": Expected no match due to conflicting filter criteria ");
 					}
 					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
 						tc_ac.stop;
@@ -8434,7 +8437,7 @@ module OneM2M_PermutationFunctions {
 							// Preamble
 							v_createRequest := f_getCreateRequestPrimitive(int1, m_createAcpBase, -1);
 							v_currentTime := fx_generateTimestamp();
-							v_accessControlRule.accessControlContexts_list := {{{"* * * * " & int2str(f_getMonth(v_currentTime)) & " *"}, omit, omit}};
+							v_accessControlRule.accessControlContexts_list := {{{"* * * * " & int2str(f_getMonth(v_currentTime)) & " * *"}, omit, omit}};
 							v_createRequest.primitiveContent.accessControlPolicy.privileges.accessControlRule_list := {v_accessControlRule};
 							vc_acpAuxIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource
 							
@@ -8504,7 +8507,7 @@ module OneM2M_PermutationFunctions {
 							} else {
 								v_month := v_month + 1;
 							}
-							v_accessControlRule.accessControlContexts_list := {{{"* * * * " & int2str(v_month) & " *"}, omit, omit}};
+							v_accessControlRule.accessControlContexts_list := {{{"* * * * " & int2str(v_month) & " * *"}, omit, omit}};
 							v_createRequest.primitiveContent.accessControlPolicy.privileges.accessControlRule_list := {v_accessControlRule};
 							vc_acpAuxIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource
 							
diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn
index e6130dc7cb2ccff146b3cae7b50c3ecbabe95fbc..ba9bd8f1bf6b76235d88152477bb6c4a0530093c 100644
--- a/OneM2M_Testcases_CSE_Release_1.ttcn
+++ b/OneM2M_Testcases_CSE_Release_1.ttcn
@@ -455,6 +455,10 @@ module OneM2M_Testcases_CSE_Release_1 {
 					var template RequestPrimitive v_requestPrimitive;
 					
 					//Test control
+					if(not(PICS_MN_CSE)) {
+						setverdict(inconc, __SCOPE__ & ": IUT shall be MN-CSE to run this test case");
+						stop;
+					}
 					
 					// Test component configuration
 					f_cf02UpCseSimuMaster(int1);
@@ -590,6 +594,10 @@ module OneM2M_Testcases_CSE_Release_1 {
 					template XSD.AnyURI v_link := pattern "{v_cseId}/S";
 					
 					//Test control
+					if(not(PICS_MN_CSE)) {
+						setverdict(inconc, __SCOPE__ & ": IUT shall be MN-CSE to run this test case");
+						stop;
+					}
 	                
 					// Test component configuration
 					f_cf02UpCseSimuMaster(int1);
@@ -1119,6 +1127,22 @@ module OneM2M_Testcases_CSE_Release_1 {
 						v_ae1.start(f_CSE_REG_CRE_012(v_create));
 						v_ae1.done;
 					}
+
+					testcase TC_CSE_REG_CRE_012_AE_NL() runs on Tester system CseSystem {
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, PX_TS_AE1.aeIdStem);
+						v_create.primitiveContent.aE.nodeLink := "MyNodeResourceID";
+						v_ae1.start(f_CSE_REG_CRE_012(v_create));
+						v_ae1.done;
+					}
+
+					testcase TC_CSE_REG_CRE_012_AE_OR() runs on Tester system CseSystem {
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, PX_TS_AE1.aeIdStem);
+						v_create.primitiveContent.aE.ontologyRef := "MyOntologyReference";
+						v_ae1.start(f_CSE_REG_CRE_012(v_create));
+						v_ae1.done;
+					}
 					
 				}
 
@@ -2036,7 +2060,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase);
 									
 					//Test Body
-					v_request := valueof(m_createAEAnnc(-, f_getResourceAddress(vc_remoteCseIndex), PX_TS_CSE1.cseId & "/" & PX_ALLOWED_S_AE_IDS[0], PX_TS_AE1.appId, PX_TS_CSE1.cseId & "/" & PX_ALLOWED_S_AE_IDS[0]));	
+					v_request := valueof(m_createAEAnnc(-, f_getResourceAddress(vc_remoteCseIndex), PX_TS_CSE1.cseId & "/" & PX_ALLOWED_S_AE_IDS[0], omit, PX_TS_CSE1.cseId & "/" & PX_ALLOWED_S_AE_IDS[0]));	
 					
 					v_request := f_getCreateRequestPrimitive(int10002, v_request, vc_remoteCseIndex);
 					v_primitiveContent.aEAnnc := mw_contentAeAnnc_base;
@@ -7608,7 +7632,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					
 					testcase TC_CSE_DMR_UPD_016_ACP_PVS() runs on Tester system CseSystem {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var SetOfAcrs v_privileges_1 := {{valueof(m_createAcr({PX_SUPER_AE_ID}, int61))}};
+						var SetOfAcrs v_privileges_1 := {{valueof(m_createAcr({PX_SUPER_AE_ID}, int62))}};
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -10152,9 +10176,9 @@ module OneM2M_Testcases_CSE_Release_1 {
 				tc_ac.start;
 				alt {
 				
-					[] mcaPort.receive(mw_response(mw_responsePrimitive(int4102))) -> value v_response {
+					[] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response {
 						tc_ac.stop;
-						setverdict(pass, __SCOPE__ & ": Contents Unacceptable");
+						setverdict(pass, __SCOPE__ & ": Discovery properly rejected due to invalid filter criteria format");
 					}
 					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
 						tc_ac.stop;
@@ -10179,7 +10203,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 			group g_CSE_DIS_008{
 			
 				/**
-				 * @desc Check that the IUT responds the originator with an error when the originator sends a request to discover the resource TARGET_RESOURCE_ADDRESS including two conflicted filter criteria of different type FILTER_CRITERIA_CONDITION_1 and FILTER_CRITERIA_CONDITION_2 (E.G. createBefore < createdAfter)
+				 * @desc Check that the IUT responds the originator with a success response when the originator sends a request to discover the resource TARGET_RESOURCE_ADDRESS including two conflicted filter criteria of different type FILTER_CRITERIA_CONDITION_1 and FILTER_CRITERIA_CONDITION_2 (E.G. createBefore < createdAfter)
 				 * 
 				 */
 				testcase TC_CSE_DIS_008_CRB_CRA() runs on Tester system CseSystem {
@@ -10370,7 +10394,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					[] mcaPort.receive(mw_response(mw_responseDiscovery)) -> value v_response {
 						tc_ac.stop;
 						while (v_i_cont<lengthof(v_response.primitive.responsePrimitive.primitiveContent.uRIList)){
-							if (f_isNonHierarchical(v_response.primitive.responsePrimitive.primitiveContent.uRIList[v_i_cont])) {
+							if (f_isHierarchical(v_response.primitive.responsePrimitive.primitiveContent.uRIList[v_i_cont])) {
 							  setverdict(pass, __SCOPE__ & ": Hierarchical address form present in URIList[" & int2str(v_i_cont) & "] element");
 							} else {
 							  setverdict(fail, __SCOPE__ & ": Hierarchical address form absent in URIList[" & int2str(v_i_cont) & "] element");