diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 5f49b9e8c2579c2d3f0fe52063bd7874ad038ae9..87472dc96ed26c536ca22962ca1e8b19c1b5e79a 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -936,6 +936,8 @@ module OneM2M_Functions {
 			 */
 			function f_cse_postamble_deleteResourcesCSE() runs on CseSimu {
 				var integer i;
+				var integer v_resourceIndex := -1;
+				var URIList v_childResourceRefs;
 				var XSD.ID v_resourceAddress;
 				var RequestPrimitive v_request;
 				var boolean v_deregistrationPerformed := false;
@@ -951,15 +953,16 @@ module OneM2M_Functions {
 					};
 		
 					for(i := lengthof(vc_resourcesIndexToBeDeleted) -1; i >=0; i := i - 1) {
-			
-						if(ischosen(vc_resourcesList[vc_resourcesIndexToBeDeleted[i]].resource.remoteCSE)) {
-							v_resourceAddress := f_getResourceAddress(vc_resourcesIndexToBeDeleted[i], e_nonHierarchical, e_spRelative);
+						
+						v_resourceIndex := vc_resourcesIndexToBeDeleted[i];
+						if(ischosen(vc_resourcesList[v_resourceIndex].resource.remoteCSE)) {
+							v_resourceAddress := f_getResourceAddress(v_resourceIndex, e_nonHierarchical, e_spRelative);
 							v_deregistrationPerformed := true;
 						} else {
-							v_resourceAddress := f_getResourceAddress(vc_resourcesIndexToBeDeleted[i]);
+							v_resourceAddress := f_getResourceAddress(v_resourceIndex);
 						} 
 			
-						v_request := valueof(m_delete(v_resourceAddress, f_getOriginator(vc_resourcesIndexToBeDeleted[i], vc_testSystemRole)));
+						v_request := valueof(m_delete(v_resourceAddress, f_getOriginator(v_resourceIndex, vc_testSystemRole)));
 
 						mccPort.send(f_getMsgOutPrimitive(m_request(v_request)));
 			
@@ -979,62 +982,53 @@ module OneM2M_Functions {
 						}	
 					}
 					
+					//CSE Registration initiated by IUT - Test System to start CSE deregistration by:
+					//1) Started by Registrar (Test System)
+					//2) Started by Registree (IUT) by sending an UT message
 					if(not(v_deregistrationPerformed)) {
 						if(vc_localRemoteCseIndex != -1) {
-							//Deregistration by Registrar (Test System)
-							mccPort.send(f_getMsgOutPrimitive(m_request(m_retrieveChildReferences(f_getResourceAddress(), f_getOriginator(vc_remoteCseIndex), {int16}))));
-							tc_ac.start;
-							alt {
-								[] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
-									tc_ac.stop;
-									log(__SCOPE__&":INFO: Resource retrieved successfuly");
-									v_resourceAddress := vc_response.primitive.responsePrimitive.primitiveContent.cSEBase.choice.childResource_list[0].base;
-									v_request := valueof(m_delete(v_resourceAddress, PX_CSE1_ID));
-
-									mccPort.send(f_getMsgOutPrimitive(m_request(v_request)));
-
-									tc_ac.start;
-									alt {
-										[] mccPort.receive(mw_response(mw_responsePrimitiveOK)) {
-											tc_ac.stop;
-											log(__SCOPE__&" INFO: Resource " & v_request.to_ & " deleted");
-											v_deregistrationPerformed := true;
-										}
-										[] mccPort.receive(mw_response(mw_responsePrimitiveKO)) {
-											tc_ac.stop;
-											log(__SCOPE__&" INFO: Error while deleting resource " & v_request.to_);
-										}
-										[] tc_ac.timeout {
-											log(__SCOPE__&" INFO: No answer while deleting resource " & v_request.to_);
-										}	
-									}		
-								}
-								[] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
-									tc_ac.stop;
-									log(__SCOPE__&":INFO: Error while retrieving resource");
-								}
-								[] tc_ac.timeout {
-									log(__SCOPE__&":INFO: No answer while retrieving resource");
-								}
-							}
+							//1) Deregistration by Registrar (Test System)
+							v_childResourceRefs := f_cse_retrieveChildResourceRefs({int16}, -, f_getOriginator(vc_remoteCseIndex));
 							
-							if(not(v_deregistrationPerformed)) {
-								//Deregistration by Registree (IUT)
-								//Send trigger message for deregistration
-								v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(vc_localRemoteCseIndex);
-								f_sendUtPrimitive(v_utRequest, v_action & f_getLocalResourceAddress(vc_localRemoteCseIndex));	
+							if(v_childResourceRefs != {}) {
+								//v_request := valueof(m_delete(v_childResourceRefs[0], f_getOriginator(vc_remoteCseIndex)));
+								v_request := valueof(m_delete(v_childResourceRefs[0]));//TODO Originator super user to be replaced by CSE1_ID (line above)
 								
+								mccPort.send(f_getMsgOutPrimitive(m_request(v_request)));
+	
 								tc_ac.start;
 								alt {
-									[] mccPortIn.receive(mw_request(mw_delete(f_getLocalResourceAddress(vc_localRemoteCseIndex)))) -> value vc_request {
+									[] mccPort.receive(mw_response(mw_responsePrimitiveOK)) {
 										tc_ac.stop;
-										f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive);
-										mccPortIn.send(f_getMsgOutPrimitive(m_response(vc_response.primitive.responsePrimitive)));
-										log(__SCOPE__&": INFO: Deregistration performed successfully");
+										log(__SCOPE__&" INFO: Resource " & v_request.to_ & " deleted");
+										v_deregistrationPerformed := true;
 									}
-									[] tc_ac.timeout {
-										log(__SCOPE__&": INFO: No deregistration performed");
+									[] mccPort.receive(mw_response(mw_responsePrimitiveKO)) {
+										tc_ac.stop;
+										log(__SCOPE__&" INFO: Error while deleting resource " & v_request.to_);
 									}
+									[] tc_ac.timeout {
+										log(__SCOPE__&" INFO: No answer while deleting resource " & v_request.to_);
+									}	
+								}	
+							}	
+						}
+							
+						if(not(v_deregistrationPerformed)) {
+							//Deregistration by Registree (IUT) - Send trigger message for deregistration
+							v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(vc_localRemoteCseIndex);
+							f_sendUtPrimitive(v_utRequest, v_action & f_getLocalResourceAddress(vc_localRemoteCseIndex));	
+							
+							tc_ac.start;
+							alt {
+								[] mccPortIn.receive(mw_request(mw_delete(f_getLocalResourceAddress(vc_localRemoteCseIndex)))) -> value vc_request {
+									tc_ac.stop;
+									f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive);
+									mccPortIn.send(f_getMsgOutPrimitive(m_response(vc_response.primitive.responsePrimitive)));
+									log(__SCOPE__&": INFO: Deregistration performed successfully");
+								}
+								[] tc_ac.timeout {
+									log(__SCOPE__&": INFO: No deregistration performed");
 								}
 							}
 						}
@@ -1764,7 +1758,6 @@ module OneM2M_Functions {
 			function f_cse_sendCreateRequestPrimitive(in ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive := m_create, integer p_parentIndex := -1) runs on AeSimu {
 		
 				var RequestPrimitive v_request;
-				var integer v_resourceIndex := -1;
 			
 				v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, p_parentIndex);
 		
@@ -2411,6 +2404,38 @@ module OneM2M_Functions {
 				
 			}//end of group AnnouncementFunctions
 			
+			/**
+			 * @desc Message exchange for the retrieval of a child resource refs
+			 * @param p_resourceType ResourceType of children of the resource to be retrieved
+			 * @param p_resourceIndex Resource index of the resource to be retrieved
+			 * @return PrimitiveContent parameter of the RETRIEVE response
+			 * @verdict 
+			 */
+			function f_cse_retrieveChildResourceRefs(template(omit) ResourceTypeList p_resourceTypeList := omit, integer p_targetResourceIndex := -1, XSD.ID p_originator := PX_SUPER_CSE_ID) runs on CseSimu return URIList {
+				var RequestPrimitive v_requestPrimitive;
+				var URIList v_uriList := {};
+				v_requestPrimitive := valueof(m_retrieveChildResourceRefs(f_getResourceAddress(p_targetResourceIndex), p_originator));
+				mccPort.send(f_getMsgOutPrimitive(m_request(v_requestPrimitive)));
+				tc_ac.start;
+				alt {
+					[] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+						tc_ac.stop;
+						setverdict(pass, __SCOPE__&":INFO: Resource retrieved successfuly");
+						v_uriList := vc_response.primitive.responsePrimitive.primitiveContent.uRIList;
+					}
+					[] mccPort.receive(mw_response(mw_responsePrimitiveKO)) {
+						tc_ac.stop;
+						setverdict(inconc, __SCOPE__&":INFO: Error while retrieving resource");
+					}
+					[] tc_ac.timeout {
+						setverdict(inconc, __SCOPE__&":INFO: No answer while retrieving resource");
+					}
+				}	
+				
+				return v_uriList;
+				
+ 			}// end f_cse_retrieveResourceChildren
+			
 			/**
 			 * @desc Check that a resource is present in the IUT (resourceId is known)
 			 * @param p_resourceIndex Resource index 
@@ -2675,7 +2700,6 @@ module OneM2M_Functions {
 						}
 						v_myResource.remoteCSE.resourceType := p_resourceType;
 						v_myResource.remoteCSE.resourceID := f_resourceIdCleaner(v_myResource.remoteCSE.cSE_ID);
-						//v_myResource.remoteCSE.resourceID := "remoteCSE-ID" & int2str(v_resourceIndex);
 						v_myResource.remoteCSE.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
 						v_myResource.remoteCSE.creationTime := fx_generateTimestamp();
 						v_myResource.remoteCSE.creationTime := "20171231T012345";
@@ -2699,9 +2723,9 @@ module OneM2M_Functions {
 				} else if (p_resourceType == int10002 and ispresent (p_resource)) { //AE Annc
 					if(ischosen(p_resource.aEAnnc)) {
 						v_myResource.aEAnnc := valueof(p_resource.aEAnnc);
-						
-						
-						v_myResource.aEAnnc.resourceName := "aEAnnc" & int2str(v_resourceIndex);
+						if(not(ispresent(p_resource.aEAnnc.resourceName))) {
+							v_myResource.aEAnnc.resourceName := "aEAnnc" & int2str(v_resourceIndex);
+						}
 						v_myResource.aEAnnc.resourceType := p_resourceType;
 						v_myResource.aEAnnc.resourceID := "aeA" & int2str(v_resourceIndex);
 						v_myResource.aEAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
@@ -2711,8 +2735,9 @@ module OneM2M_Functions {
 				} else if (p_resourceType == int10001 and ispresent (p_resource)) { //Acp Annc
 					if(ischosen(p_resource.accessControlPolicyAnnc)) {
 						v_myResource.accessControlPolicyAnnc := valueof(p_resource.accessControlPolicyAnnc);
-						
-						v_myResource.accessControlPolicyAnnc.resourceName := "accessControlPolicyAnnc" & int2str(v_resourceIndex);
+						if(not(ispresent(p_resource.accessControlPolicyAnnc.resourceName))) {
+							v_myResource.accessControlPolicyAnnc.resourceName := "accessControlPolicyAnnc" & int2str(v_resourceIndex);
+						}
 						v_myResource.accessControlPolicyAnnc.resourceType := p_resourceType;
 						v_myResource.accessControlPolicyAnnc.resourceID := "acpA" & int2str(v_resourceIndex);
 						v_myResource.accessControlPolicyAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
@@ -2722,8 +2747,9 @@ module OneM2M_Functions {
 				} else if (p_resourceType == int10003 and ispresent (p_resource)) { //Container Annc
 					if(ischosen(p_resource.containerAnnc)) {
 						v_myResource.containerAnnc := valueof(p_resource.containerAnnc);
-						
-						v_myResource.containerAnnc.resourceName := "containerAnnc" & int2str(v_resourceIndex);
+						if(not(ispresent(p_resource.containerAnnc.resourceName))) {
+							v_myResource.containerAnnc.resourceName := "containerAnnc" & int2str(v_resourceIndex);
+						}
 						v_myResource.containerAnnc.resourceType := p_resourceType;
 						v_myResource.containerAnnc.resourceID := "cntA" & int2str(v_resourceIndex);
 						v_myResource.containerAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
@@ -2733,8 +2759,9 @@ module OneM2M_Functions {
 				} else if (p_resourceType == int10009 and ispresent (p_resource)) { //Group Annc
 					if(ischosen(p_resource.groupAnnc)) {
 						v_myResource.groupAnnc := valueof(p_resource.groupAnnc);
-						
-						v_myResource.groupAnnc.resourceName := "groupAnnc" & int2str(v_resourceIndex);
+						if(not(ispresent(p_resource.groupAnnc.resourceName))) {
+							v_myResource.groupAnnc.resourceName := "groupAnnc" & int2str(v_resourceIndex);
+						}
 						v_myResource.groupAnnc.resourceType := p_resourceType;
 						v_myResource.groupAnnc.resourceID := "grpA" & int2str(v_resourceIndex);
 						v_myResource.groupAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
@@ -2744,8 +2771,9 @@ module OneM2M_Functions {
 				} else if (p_resourceType == int10004 and ispresent (p_resource)) { //ContentInstance Annc
 					if(ischosen(p_resource.contentInstanceAnnc)) {
 						v_myResource.contentInstanceAnnc := valueof(p_resource.contentInstanceAnnc);
-						
-						v_myResource.contentInstanceAnnc.resourceName := "contentInstanceAnnc" & int2str(v_resourceIndex);
+						if(not(ispresent(p_resource.contentInstanceAnnc.resourceName))) {
+							v_myResource.contentInstanceAnnc.resourceName := "contentInstanceAnnc" & int2str(v_resourceIndex);
+						}
 						v_myResource.contentInstanceAnnc.resourceType := p_resourceType;
 						v_myResource.contentInstanceAnnc.resourceID := "cinA" & int2str(v_resourceIndex);
 						v_myResource.contentInstanceAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
@@ -2755,11 +2783,9 @@ module OneM2M_Functions {
 				} else if (p_resourceType == int1 and ispresent (p_resource)) { //Acp Resource
 				   if(ischosen (p_resource.accessControlPolicy)){
 						v_myResource.accessControlPolicy := valueof(p_resource.accessControlPolicy);
-					
 						if(not(ispresent(p_resource.accessControlPolicy.resourceName))) {
 							v_myResource.accessControlPolicy.resourceName := "accessControlPolicy" & int2str(v_resourceIndex);
 						}
-						
 						v_myResource.accessControlPolicy.resourceType := p_resourceType;
 						v_myResource.accessControlPolicy.resourceID := "acp" & int2str(v_resourceIndex);
 						v_myResource.accessControlPolicy.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
@@ -3084,26 +3110,10 @@ module OneM2M_Functions {
 			 */
 			function f_cse_sendResponse(in MsgIn p_requestPrimitive) runs on CseSimu {
 				
-				var integer v_parentResourceIndex := -1;
-				var integer v_localResourceIndex := -1;
-				var ResponsePrimitive v_response;
-				var PrimitiveContent v_localResource;
 				
-				v_parentResourceIndex := f_getResourceIndex(p_requestPrimitive.primitive.requestPrimitive.to_);
-				if(v_parentResourceIndex == -1) {
-					log(__SCOPE__&": ERROR: Target resource not found");
-					v_response := valueof(m_responsePrimitive(int4004,p_requestPrimitive.primitive.requestPrimitive.requestIdentifier));
+				f_processCreateRequestPrimitive(p_requestPrimitive.primitive.requestPrimitive);
 				
-				} else {
-					v_localResource := f_generateLocalResource(p_requestPrimitive.primitive.requestPrimitive.primitiveContent, v_parentResourceIndex, p_requestPrimitive.primitive.requestPrimitive.resourceType);
-					v_localResourceIndex := f_setLocalResource(v_localResource, p_requestPrimitive.primitive.requestPrimitive.resourceType, v_parentResourceIndex);
-
-					v_response := valueof(m_responsePrimitive(int2001,p_requestPrimitive.primitive.requestPrimitive.requestIdentifier));
-					v_response.primitiveContent := vc_localResourcesList[v_localResourceIndex].resource;
-				}
-				v_response.from_ := PX_CSE1_ID;
-				v_response.to_ := p_requestPrimitive.primitive.requestPrimitive.from_;
-				mccPortIn.send(f_getMsgOutPrimitive(m_response(v_response)));
+				mccPortIn.send(f_getMsgOutPrimitive(m_response(vc_response.primitive.responsePrimitive)));
 			
 			}
 			
@@ -3111,15 +3121,20 @@ module OneM2M_Functions {
 			 * @desc   Receive response from the IUT
 			 * @param  p_requestPrimtive	Received request primitive
 			 */
-			function f_cse_receiveResponse() runs on AeSimu {
+			function f_cse_receiveResponse(in RequestPrimitive p_request) runs on AeSimu {
 				
-				var integer v_localResourceIndex := -1;
+				var integer v_resourceIndex := -1;
 				
+				//Activate defaults when running on a PTC
+			    f_cse_activateDefaults_ae(); 
+			    
 				tc_ac.start;
 				alt {
 					[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
 						tc_ac.stop;
 						setverdict(pass, __SCOPE__&":INFO: Response received with positive response status code");
+						f_checkAttributesToBeSaved(p_request.resourceType, p_request, vc_response.primitive.responsePrimitive);
+						v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_request.resourceType);
 					}
 					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
 						tc_ac.stop;
@@ -3892,7 +3907,11 @@ module OneM2M_Functions {
 			
 			if(vc_resourcesList[p_targetResourceIndex].parentIndex == -1) {
 				if(ischosen(vc_resourcesList[p_targetResourceIndex].resource.aE)) {
-					return vc_resourcesList[p_targetResourceIndex].resource.aE.aE_ID;
+					if(isvalue(vc_resourcesList[p_targetResourceIndex].resource.aE.aE_ID)) {
+						return vc_resourcesList[p_targetResourceIndex].resource.aE.aE_ID;
+					} else {
+						return PX_SUPER_AE_ID;
+ 					}	
 				} else if (ischosen(vc_resourcesList[p_targetResourceIndex].resource.remoteCSE)) {
 					return vc_resourcesList[p_targetResourceIndex].resource.remoteCSE.cSE_ID; 
 				} else {
@@ -4158,7 +4177,7 @@ module OneM2M_Functions {
 			
 			v_newIndex := lengthof(vc_resourcesList)-1;
 			if(p_resourceToBeDeleted) {
-				if(match(int2, p_resourceType) or match(-1, p_parentIndex)) {//If created resource is an AE or created under CSEBase, it needs to be added to the resourceToBeDeleted list
+				if(p_resourceType == int2 or p_parentIndex == -1) {//If created resource is an AE or created under CSEBase, it needs to be added to the resourceToBeDeleted list
 					vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_newIndex};
 				}
 			}
@@ -4565,6 +4584,8 @@ module OneM2M_Functions {
 				 	f_cf02Down();
 				 }
 				 kill;
+			} else {
+				log(__SCOPE__, ":INFO: AeSimu status OK");
 			}
 		}
 		
@@ -4664,6 +4685,8 @@ module OneM2M_Functions {
 					f_cf02DownCseSimuMaster();
 			   }
 				kill;
+			} else {
+				log(__SCOPE__, ":INFO: CseSimu status OK");
 			}
 		}
 		
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index d58fc36efe61fa0c2fe7e03a0b7322e31693900d..621e7e389ad0374f4d6d59a095e0fadf329a7437 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -133,8 +133,7 @@ module OneM2M_Templates {
 			 * @param p_targetResourceAddress Target resource address
 			 * @param p_originator Originator (from)
 			 */
-			template (value) RequestPrimitive m_retrieveChildReferences(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, template (omit) ResourceTypeList p_resourceTypeList := omit) modifies m_retrieve := {
-				resultContent := int6, 
+			template (value) RequestPrimitive m_retrieveChildResourceRefs(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, template (omit) ResourceTypeList p_resourceTypeList := omit) modifies m_retrieve := {
 				filterCriteria := {
 					createdBefore := omit,
 					createdAfter := omit,
@@ -150,7 +149,7 @@ module OneM2M_Templates {
 					sizeBelow := omit,
 					contentType_list := {},
 					attribute_list := {},
-					filterUsage := omit,
+					filterUsage := int1,
 					limit := omit,
 					semanticsFilter_list := {},
 					filterOperation := omit,
diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn
index 8e5e1acf4b94435af1dcd50d283db60176e83b45..8078cf0b9d478d55b50d4620e128443f0aba50e1 100644
--- a/OneM2M_Testcases_CSE_Release_1.ttcn
+++ b/OneM2M_Testcases_CSE_Release_1.ttcn
@@ -690,9 +690,6 @@ module OneM2M_Testcases_CSE_Release_1 {
 		  	  	
 		  	  		var MsgIn v_request;
 					var template RequestPrimitive v_requestPrimitive;
-					var integer v_cseBaseIndex := -1;
-					var ResourceType v_resourceType := int2;
-					var boolean v_handleResponses := false;
 					
 					//Test control
 	                
@@ -703,8 +700,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE);
 		
 					//Test Body
-					vc_ae1.start(f_cse_sendCreateRequestPrimitive(int2, m_createAe(PX_APP_ID, -, "S", omit)));
-					vc_ae1.done;
+					vc_ae1.start(f_cse_createResource(int2, m_createAe(PX_APP_ID, -, "S")));
 					
 					v_requestPrimitive := mw_createAEAnnc_s_ae_id(PX_CSE_ID & "/S", -, -, -);
 					v_requestPrimitive.primitiveContent.aEAnnc.app_ID := PX_APP_ID;
@@ -714,29 +710,26 @@ module OneM2M_Testcases_CSE_Release_1 {
 						[] mccPortIn.receive(mw_request(v_requestPrimitive)) -> value v_request {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__ & ": AE creation redirected.");
-							v_handleResponses := true;
+							f_cse_sendResponse(v_request);
 						}
 						[] mccPortIn.receive(mw_request(mw_createAEAnnc())) -> value v_request {
 							tc_ac.stop;
 							setverdict(fail, __SCOPE__ & ": AE creation redirected but wrong parameters");
-							v_handleResponses := true;
+							f_cse_sendResponse(v_request);
 						}
 						[] mccPortIn.receive(mw_request(?))-> value v_request {
 							tc_ac.stop;
 							setverdict(fail, __SCOPE__ & ": Unexpected message received");
-							v_handleResponses := true;
+							f_cse_sendResponse(v_request);
 						}
 						[] tc_ac.timeout {
 							setverdict(fail, __SCOPE__ & ": No answer while creating AE");
 						}
 					}
+					
+					vc_ae1.done;
 									
 					// Postamble
-					if (v_handleResponses) {
-						vc_ae1.start(f_cse_receiveResponse());
-						f_cse_sendResponse(v_request);
-						vc_ae1.done;
-					}
 					f_cse_postamble_deleteResourcesCSE();
 					
 					// Tear down
@@ -1869,7 +1862,10 @@ module OneM2M_Testcases_CSE_Release_1 {
 							}
 							v_response.from_ := PX_CSE1_ID;
 							v_response.to_ := v_request.primitive.requestPrimitive.from_;
-							mccPortIn.send(f_getMsgOutPrimitive(m_response(v_response)));				}
+							mccPortIn.send(f_getMsgOutPrimitive(m_response(v_response)));	
+							tc_ac.start(10.0);
+							repeat;
+						}
 						[] tc_ac.timeout {
 							if(not(v_cseRegistered)) {
 								setverdict(fail, __SCOPE__&":INFO: No request received for creating resource type remoteCSE");