diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index 32abbc2b9ae06299bc21d58ac6e465c61532ec63..2da46b8f98704e3d04d8f4795f5f84ea288580bc 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -8769,14 +8769,10 @@ module OneM2M_PermutationFunctions {
 				
 				function f_CSE_ANNC_CRE_002(ResourceType p_resourceType, template RequestPrimitive p_createRequest, in template RequestPrimitive p_updateRequest := omit, in template RequestPrimitive p_createRequestAnnc) runs on CseSimu system CseSystem {
 					// Local variables
-					var MsgIn v_response;
-					var MsgIn v_request;
-					var PrimitiveContent v_announcedResource;
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex;
 					var integer v_localResourceIndex := -1;
 					var integer v_remoteCSEAnncIndex := -1;
-					var ResponsePrimitive v_responsePrimitive;
 					
 					// Test control
 
@@ -8786,7 +8782,7 @@ module OneM2M_PermutationFunctions {
 					// Test adapter configuration
 
 					//Register the CSE
-				  	f_cse_registrationRemoteCse(mw_createRemoteCSE);
+				  	//f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()}));
 				  
 					//Preamble
 					vc_ae1.start(f_cse_preamble_registerAe());
@@ -8800,56 +8796,27 @@ module OneM2M_PermutationFunctions {
 					v_resourceIndex := f_getLatestResourceIndex(vc_ae1);
 	
 					// Test Body
-					vc_ae1.start(f_cse_sendUpdateRequestPrimitive(p_resourceType, p_updateRequest, v_resourceIndex));
-					vc_ae1.done;
+					vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_updateRequest, -));
 					
 					tc_ac.start;
 					alt {
-						[] mccPortIn.receive(mw_request(mw_updateRemoteCSE(PX_CSE_ID))) -> value v_request {
-							tc_ac.stop;
-							setverdict(pass, __SCOPE__ & ":INFO: RemoteCSE UPDATE received");
-							
-							v_localResourceIndex := f_getLocalResourceIndex(v_request.primitive.requestPrimitive.to_);
-							if(v_localResourceIndex == -1)
-							{ 
-								log(__SCOPE__&": ERROR: Resource Index not valid, target not found");
-								v_responsePrimitive := valueof(m_responsePrimitive(int4004,v_request.primitive.requestPrimitive.requestIdentifier));
-							} else {
-								v_responsePrimitive := valueof(m_responsePrimitive(int2004,v_request.primitive.requestPrimitive.requestIdentifier));
-								f_updateLocalResource(v_localResourceIndex, v_request.primitive.requestPrimitive.primitiveContent);
-								v_responsePrimitive.primitiveContent := vc_localResourcesList[v_localResourceIndex].resource;
-							}
-							v_responsePrimitive.from_ := PX_TS_CSE1.cseId;
-							v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_;
-							f_send(e_mccPortIn, m_response(valueof(v_responsePrimitive)));
-						}
-						[] tc_ac.timeout {
-							setverdict(fail, __SCOPE__ & ":ERROR:  No announcement received");
-						}
-					}
-					
-					f_checkCseSimuStatus();
-					
-					tc_ac.start;
-					alt {
-						[] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request {
+						[] mccPortIn.receive(mw_request(mw_createRemoteCSEAnnc())) -> value vc_request {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__ & ":INFO: Resource Announced CREATE received");
 		
 							//Simulate that resourceAnnc is created on CSE2
-							v_announcedResource:= f_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, -1,v_request.primitive.requestPrimitive.resourceType);
-							//Set parentID correctly to remoteCSEAnnc-ID
-							v_announcedResource := f_setParentID(v_announcedResource, f_resourceIdCleaner(vc_localResourcesList[v_localResourceIndex].resource.remoteCSE.announceTo[0]));
-					
-							v_responsePrimitive := valueof(m_responsePrimitive(int2001,v_request.primitive.requestPrimitive.requestIdentifier));
-							v_responsePrimitive.primitiveContent := v_announcedResource;
-							f_send(e_mccPortIn, m_response(v_responsePrimitive));
+							v_remoteCSEAnncIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -);
+							f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
 						}
 						[] tc_ac.timeout {
 							setverdict(fail, __SCOPE__ & ":ERROR:  No announcement received");
 						}
 					}
 					
+					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_remoteCSEAnncIndex);
+					
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					
 					// Postamble
 					f_cse_postamble_deleteResourcesCSE();
 
diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn
index 321d49f43350e3022d6ac2185708eaacc2c7b205..286a2f39ee7ffaecf55b1a3fe5b38ebdca737bed 100644
--- a/OneM2M_Testcases_CSE_Release_3.ttcn
+++ b/OneM2M_Testcases_CSE_Release_3.ttcn
@@ -9472,7 +9472,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc;
 						
 						
-						v_updateRequest.primitiveContent.container.announceTo := {"/CSE2_ID"};
+						v_updateRequest.primitiveContent.container.announceTo := {f_getCompletePoA(PX_TS_CSE1.mccPortIn)};
   
 						v_cse1.start(f_CSE_ANNC_CRE_002(int3, v_createRequest, v_updateRequest, v_createRequestAnnc));//Container
 						v_cse1.done;