diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 5ac698c5f4055e170c1aa88e180f02cc0ba8077f..0907164e53b3e645bf031d4ccf61a27dde507704 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -868,30 +868,34 @@ module OneM2M_Functions {
 				var integer v_resourceIndex;
 				
 				// AE TODO To review the code (use of indexes, generation of value for certain attributes, etc..)
-				if(p_resourceType == int2 and ischosen(p_resource.any_1[0].AE_optional)) {
-					var AE_optional v_ae := p_resource.any_1[0].AE_optional;
-					var AE_optional v_aeModified;					
-					
-					v_resourceIndex := lengthof(vc_resourcesList) - 1;
-					v_ae.resourceType := p_resourceType;
-					
-					v_ae.parentID := int2str(p_parentIndex);
-					v_ae.creationTime := fx_generateTimestamp();
-					v_ae.lastModifiedTime := v_ae.creationTime;											
-					v_ae.resourceID := "ae" & int2char(v_resourceIndex);
-					v_ae.aE_ID := "ae" & int2char(v_resourceIndex);
-					v_ae.resourceName := "ae" & int2char(v_resourceIndex);
-
-					v_aeModified.parentID := v_ae.parentID;
-					v_aeModified.creationTime := v_ae.creationTime;
-					v_aeModified.lastModifiedTime := v_ae.lastModifiedTime;											
-					v_aeModified.resourceID := v_ae.resourceID;
-					v_aeModified.aE_ID := v_ae.aE_ID;
-					v_aeModified.resourceName := v_ae.resourceName;
-					
-					p_resource.any_1[0].AE_optional := v_ae;
-					p_modifiedResource.AE_optional := v_aeModified;
-					return f_setResource(p_resource, p_parentIndex);					
+				if(p_resourceType == int2 and ispresent(p_resource)) {
+				  	if(ischosen(p_resource.any_1[0].AE_optional)){
+				      	var AE_optional v_ae := p_resource.any_1[0].AE_optional;
+      					var AE_optional v_aeModified;					
+      					
+      					v_resourceIndex := lengthof(vc_resourcesList) - 1;
+      					v_ae.resourceType := p_resourceType;
+      					
+      					v_ae.parentID := int2str(p_parentIndex);
+      					v_ae.creationTime := fx_generateTimestamp();
+      					v_ae.lastModifiedTime := v_ae.creationTime;											
+      					v_ae.resourceID := "ae" & int2char(v_resourceIndex);
+      					v_ae.aE_ID := "ae" & int2char(v_resourceIndex);
+      					v_ae.resourceName := "ae" & int2char(v_resourceIndex);
+      
+      					v_aeModified.parentID := v_ae.parentID;
+      					v_aeModified.creationTime := v_ae.creationTime;
+      					v_aeModified.lastModifiedTime := v_ae.lastModifiedTime;											
+      					v_aeModified.resourceID := v_ae.resourceID;
+      					v_aeModified.aE_ID := v_ae.aE_ID;
+      					v_aeModified.resourceName := v_ae.resourceName;
+      					
+      					p_resource.any_1[0].AE_optional := v_ae;
+      					p_modifiedResource.AE_optional := v_aeModified;
+      					return f_setResource(p_resource, p_parentIndex);			   
+				    
+				    }
+										
 				}	
 				
 				// TODO: implement other resource types			
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index 1d88ad8b6dc82609534280359c2648eab8506cf5..783ee7c579ee2eb5714eb880e264539f68f96cf2 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -1682,7 +1682,7 @@ module OneM2M_Testcases {
 							var MsgIn v_response;
 							var RequestPrimitive v_request;
 							var integer v_aeIndex := -1;
-											   
+									   
 							// Test control
     				
 							// Test component configuration
@@ -1695,8 +1695,8 @@ module OneM2M_Testcases {
 						
 							// Test Body
 							v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex);
-    					
-							mcaPort.send(m_request(v_request, {valueof(p_invalidAttribute)}));
+							
+    						mcaPort.send(m_request(v_request, {p_invalidAttribute}));
 							tc_ac.start;
 							alt {
 								[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
@@ -1708,7 +1708,7 @@ module OneM2M_Testcases {
 									setverdict(fail, testcasename() & ": Accepted creation of resource type " & int2str(enum2int(p_resourceType)) & " containing an invalid value for attribute" & p_invalidAttribute.name);
 								}
 								[] tc_ac.timeout {
-									setverdict(inconc, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType)));
+									setverdict(inconc, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType)));  
 								}
 							}