diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 0252a5dd1a8c33d451f1a68efebe7b0cead8ccf2..805c07e28caa0c0ba4d64349b447c4ca31d5002a 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -2592,7 +2592,7 @@ module OneM2M_Functions {
 				 * @param p_primitiveContent Expected primitiveContent in the notification
 				 * @verdict 
 				 */
-				function f_cse_notifyProcedure_representationHandler(template PrimitiveContent p_primitiveContent) runs on AeSimu {
+				function f_cse_notifyProcedure_representationHandler(template PrimitiveContent p_primitiveContent, in ResponseStatusCode p_responseStatusCode := int2000) runs on AeSimu {
 					// Local variables
 					var ResponsePrimitive v_responsePrimitive;
 					
@@ -2610,7 +2610,7 @@ module OneM2M_Functions {
 								setverdict(fail, __SCOPE__ & ":ERROR: Notification received but the content doesn't match");
 							}
 							//Send response in any case
-							v_responsePrimitive := valueof(m_responseNotification(int2000, omit));
+							v_responsePrimitive := valueof(m_responseNotification(p_responseStatusCode, omit));
 							v_responsePrimitive.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier;
 							f_send(e_mcaPortIn, m_response(v_responsePrimitive));
 						}
@@ -5579,6 +5579,27 @@ module OneM2M_Functions {
 						p_request.primitiveContent.token.tokenObject := fx_generateJWT();
 					}
 				}
+			} else if (p_resourceType == int48) {//crossResourceSubscription
+				//notificationURI
+				if(match(valueof(p_request.primitiveContent.crossResourceSubscription.notificationURI), v_defaultListOfURIs )){
+					p_request.primitiveContent.crossResourceSubscription.notificationURI := {f_getResourceAddress(f_getResourceIndex(f_getOriginator(p_parentIndex)))};
+				}
+				//subscriberURI
+				if(ispresent(p_request.primitiveContent.crossResourceSubscription.subscriberURI)) {
+					if(match(valueof(p_request.primitiveContent.crossResourceSubscription.subscriberURI), "NotInitialized" )){
+						p_request.primitiveContent.crossResourceSubscription.subscriberURI := valueof(p_request.from_);
+					}
+				}
+				//accessControlPolicyIds
+				if(ispresent(p_request.primitiveContent.crossResourceSubscription.accessControlPolicyIDs)) {
+					if(match(valueof(p_request.primitiveContent.crossResourceSubscription.accessControlPolicyIDs), v_defaultAcpIDs )){
+						p_request.primitiveContent.crossResourceSubscription.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[vc_acpIndex].resource)};
+					}	
+				} 
+				//creator
+				if(match(valueof(p_request.primitiveContent.crossResourceSubscription.creator), "NotInitialized" )){
+					p_request.primitiveContent.crossResourceSubscription.creator := valueof(p_request.from_);
+				} 
 			} 
 			
 			return valueof(p_request);
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 3ca1f602361d632ebc35c7ed5eb075837d9bb382..6a106a78930d2c1b849e4259fc1fd0705ca5fbe6 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -2771,7 +2771,7 @@ module OneM2M_Templates {
 				primitiveContent := {crossResourceSubscription := m_contentCreateCrossResourceSubscription ({"NotInitialized"}, -, -, omit)}
 			};*/
         	
-			template (value) RequestPrimitive m_createCrossResourceSubscription(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name := c_defaultSubscriptionResourceName, in template (value) ListOfURIs p_notificationURI := {"NotInitialized"},
+			template (value) RequestPrimitive m_createCrossResourceSubscription(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name := c_defaultCrossResourceSubscriptionResourceName, in template (value) ListOfURIs p_notificationURI := {"NotInitialized"},
 				in template (omit) TimeWindowType p_timeWindowType, in template (value) AbsRelTimestamp p_timeWindowSize, in template (value) XSD.ID p_creator) modifies m_create := {
 				to_ := p_parentResourceAddress,
 				requestIdentifier := testcasename() & "-m_createCrossResourceSubscription",
diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn
index 3bb44986a2699d386460c9ad286526714ecdf54d..2e9e908d02212654f164afc1ef1e7921769771f9 100644
--- a/LibOneM2M/OneM2M_TypesAndValues.ttcn
+++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn
@@ -26,6 +26,7 @@ module OneM2M_TypesAndValues {
 		const XSD.String c_defaultScheduleResourceName := "MyScheduleResource";
 		const XSD.String c_defaultPollingChannelResourceName := "MyPollingChannelResource";
 		const XSD.String c_defaultSubscriptionResourceName := "MySubscriptionResource";
+		const XSD.String c_defaultCrossResourceSubscriptionResourceName := "MyCrossResourceSubscriptionResource";
 		const XSD.String c_defaultContentInstanceResourceName := "MyContentInstanceResource";
 		const XSD.String c_defaultContainerResourceName := "MyContainerResource";
 		const XSD.String c_defaultContainerAnncResourceName := "MyContainerAnncResource";
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index 7af70cab5b997dcf32c32d1f4cd096670a44ea7a..009c818e7ed0b9636938ee4f8b9a1071fa0db1de 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -10719,7 +10719,7 @@ module OneM2M_PermutationFunctions {
 					var integer v_resourceIndex := -1;
 					var integer v_resourceIndex_1 := -1;
 					var integer v_resourceIndex_2 := -1;				 
-					var template RequestPrimitive v_createRequest := m_createContainerBase;
+					var template RequestPrimitive v_createRequest := m_createContainer_noResourceName;
 					const ResourceType c_containerResourceType := int3;
 					var template RequestPrimitive v_updateRequest_1 := m_updateContainerBase;
 					var template RequestPrimitive v_updateRequest_2 := m_updateContainerBase;
@@ -10737,12 +10737,12 @@ module OneM2M_PermutationFunctions {
 					// Test adapter configuration
 
 					// Preamble
-					v_aeIndex_1 := f_cse_preamble_registerAe();//c_CRUDNDi);
+					v_aeIndex_1 := f_cse_preamble_registerAe(-, {f_getLocalPoA(vc_aeSimuDesc.mcaPortIn)}, -);//c_CRUDNDi);
 					v_resourceIndex_1 := f_cse_createResource(c_containerResourceType, v_createRequest, v_aeIndex_1);//Container_1					
 					v_resourceIndex_2 := f_cse_createResource(c_containerResourceType, v_createRequest, v_aeIndex_1);//Container_2										
 					
-					v_createRequest := m_createCrossResourceSubscription("NotInitialized", -, {f_getResourceAddress(v_aeIndex_2)}, p_timeWindowType, myAbsRelTimestamp, "NullValue");
-					v_createRequest.primitiveContent.crossResourceSubscription.regularResourcesAsTarget := {f_getResourceAddress(v_resourceIndex_1), f_getResourceAddress(v_resourceIndex_2)};
+					v_createRequest := m_createCrossResourceSubscription("NotInitialized", -, {f_getResourceAddress(v_aeIndex_2)}, p_timeWindowType, myAbsRelTimestamp, "NotInitialized");
+					v_createRequest.primitiveContent.crossResourceSubscription.regularResourcesAsTarget := {f_getResourceAddress(v_resourceIndex_1, e_nonHierarchical, e_cseRelative), f_getResourceAddress(v_resourceIndex_2, e_nonHierarchical, e_cseRelative)};
 					v_createRequest.primitiveContent.crossResourceSubscription.eventNotificationCriteriaSet.eventNotificationCriteriaEntry_list := {m_eventNotificationCriteria({int1})}; // Update_of_Resource
 					f_cse_preamble_subscriptionVerification(v_aeIndex_2, v_createRequest, int48);//AE2 registration