diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 6899c5016205e0796bacbd33a8c1adf87b5f3cc0..6da00c3ef5f92895e66ce307134d3d209d2170ee 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $
- *              $Id: OneM2M_Functions.ttcn 174 2016-11-22 11:36:56Z carres $
+ *              $Id: OneM2M_Functions.ttcn 187 2016-11-29 05:28:52Z berge $
  *  @desc       Module containing functions for oneM2M
  *
  */
@@ -140,6 +140,8 @@ module OneM2M_Functions {
     					if(ischosen(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AE_optional)) {
     						vc_aeAux := v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AE_optional;
     						
+							f_checkAttributesToBeSaved(int2, v_request, v_response.primitive.responsePrimitive);
+							
     						v_aeAuxIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent);
     						vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_aeAuxIndex};
     						
@@ -359,6 +361,7 @@ module OneM2M_Functions {
     				[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
     					tc_ac.stop;
     					setverdict(pass, "f_createResource: Resource type " & int2str(enum2int(p_resourceType)) & " created successfuly");
+						f_checkAttributesToBeSaved(p_resourceType, v_request, v_response.primitive.responsePrimitive);
     					v_resourceIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, p_parentIndex);
 						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
 							vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_resourceIndex};
@@ -564,6 +567,30 @@ module OneM2M_Functions {
 			unmap(self:acPort, system:acPort); 
 
 		} //end f_subscriptionVerificationHandler
+		
+		function f_checkAttributesToBeSaved (ResourceType p_resourceType, RequestPrimitive p_request, inout ResponsePrimitive p_response) {
+			
+			if(p_resourceType == int2) {
+    			if(not(ispresent(p_response.primitiveContent.any_1[0].AE_optional.resourceName))) {
+    				p_response.primitiveContent.any_1[0].AE_optional.resourceName :=  p_request.primitiveContent.any_1[0].AE_optional.resourceName;
+    			}
+			}
+			if(p_resourceType == int3) {
+				if(not(ispresent(p_response.primitiveContent.any_1[0].Container_optional.resourceName))) {
+					p_response.primitiveContent.any_1[0].Container_optional.resourceName :=  p_request.primitiveContent.any_1[0].Container_optional.resourceName;
+				}
+			}
+			if(p_resourceType == int1) {
+				if(not(ispresent(p_response.primitiveContent.any_1[0].AccessControlPolicy_optional.resourceName))) {
+					p_response.primitiveContent.any_1[0].AccessControlPolicy_optional.resourceName :=  p_request.primitiveContent.any_1[0].AccessControlPolicy_optional.resourceName;
+				}
+			}
+			if(p_resourceType == int2) {
+				if(not(ispresent(p_response.primitiveContent.any_1[0].AE_optional.resourceName))) {
+					p_response.primitiveContent.any_1[0].AE_optional.resourceName :=  p_request.primitiveContent.any_1[0].AE_optional.resourceName;
+				}
+			}	
+		}
 
 		function f_check_notificationContent(in RequestPrimitive p_requestPrimitive, template PrimitiveContent p_primitiveContent) runs on CseTester return boolean{
 			// Local variables