diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 93a62492f411905ec9ec57ccc9baea0662f42d58..103099ae93fc432e6ec9edf261af33473f1a8dbf 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     oneM2M
  *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $
- *              $Id: OneM2M_Functions.ttcn 340 2017-08-07 12:08:41Z reinaortega $
+ *              $Id: OneM2M_Functions.ttcn 345 2017-08-07 14:45:26Z reinaortega $
  *  @desc       Module containing functions for oneM2M
  *
  */
@@ -595,15 +595,24 @@ module OneM2M_Functions {
 			 * @param p_requestPrimitive
 			 * @verdict 
 			 */
-			function f_cse_deleteResource(in RequestPrimitive p_requestPrimitive) runs on CseTester {
+			function f_cse_deleteResource(in integer p_index, in template (omit) RequestPrimitive p_requestPrimitive := omit) runs on CseTester {
+				var RequestPrimitive v_request;
 				
-				mcaPort.send(m_request(p_requestPrimitive));
+				if(not isbound(p_requestPrimitive)) {
+					v_request := valueof(m_deleteRequest(f_getResourceAddress(p_index)));
+				} else {
+					v_request := p_requestPrimitive;
+				}
+				
+				mcaPort.send(m_request(v_request));
 						
 				tc_ac.start;
 				alt {
 					[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
 						tc_ac.stop;
-						setverdict(pass, __SCOPE__&"INFO: Resource" & p_requestPrimitive.to_ & " deleted");
+						setverdict(pass, __SCOPE__&"INFO: Resource " & p_requestPrimitive.to_ & " deleted");
+						
+						f_removeElementFromList(vc_resourcesIndexToBeDeleted, p_index);
 					}
 					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
 						tc_ac.stop;
@@ -2033,11 +2042,11 @@ module OneM2M_Functions {
 			}
 		}
 		
-		function f_removeElementFromList (inout IntegerList p_list, in integer index) {
+		function f_removeElementFromList (inout IntegerList p_list, in integer p_valueToBeDeleted) {
 			var IntegerList result := {};
 			var integer i;
 			for(i := 0; i < lengthof(p_list); i := i+1){
-				if(i != index){
+				if(p_list[i] != p_valueToBeDeleted){
 					result := result & {p_list[i]};
 				}
 			}
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index fbd02fda7c0e61a1de1ae0d73ea383373208ec08..4d478ad335699429d9061242e31121e6b66ca50f 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     oneM2M
  *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $
- *              $Id: OneM2M_Testcases.ttcn 344 2017-08-07 14:11:47Z reinaortega $
+ *              $Id: OneM2M_Testcases.ttcn 345 2017-08-07 14:45:26Z reinaortega $
  *  @desc       Module containing test cases for oneM2M
  *
  */
@@ -1036,7 +1036,7 @@ module OneM2M_Testcases {
 		  	  	
 					//Preambule
 					v_aeAnncIndex := f_cse_preamble_registerAe();//TODO TestSystem acting as MN. It should register AeAnnc into the IUT (IN) via mcc
-					f_cse_deleteResource(valueof(m_deleteRequest(f_getResourceAddress(v_aeAnncIndex)))); //to deregister the AE
+					f_cse_deleteResource(v_aeAnncIndex); //to deregister the AE
 		
 					//Test Body
 					v_request := valueof(m_updateAEAnnc(-, -, -, "APP-ID", -));	//TODO to double check all parameters			
@@ -12120,7 +12120,7 @@ module OneM2M_Testcases {
                 					
                 		// Postamble
 						// We are forced to delete the Ae because the delete request in the postamble_deleteResources is sent by Ae itself, witch doesn't have privileges
-						f_cse_deleteResource(valueof(m_deleteRequest(f_getResourceAddress(v_aeIndex))));
+						f_cse_deleteResource(v_aeIndex);
 						//Update vc_resourcesIndexToBeDeleted 
 						f_removeElementFromList (vc_resourcesIndexToBeDeleted, v_aeIndex);
 						f_cse_postamble_deleteResources();
@@ -12260,7 +12260,7 @@ module OneM2M_Testcases {
                 
                 		v_childResourceIndex := f_cse_createResource(p_childResourceType, p_createRequestPrimitiveChildResource, v_resourceIndex); 
                 												
-                		f_cse_deleteResource(valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex))));
+                		f_cse_deleteResource(v_resourceIndex);
                 		
                 		// Test Body
                 		mcaPort.send(m_request(m_deleteRequest(f_getResourceAddress(v_childResourceIndex), f_getOriginator(v_childResourceIndex))));
@@ -12420,7 +12420,7 @@ module OneM2M_Testcases {
 						}
 							
 						// Test Body
-						f_cse_deleteResource(valueof(m_deleteRequest(f_getResourceAddress(v_contentInstanceIndex))));
+						f_cse_deleteResource(v_contentInstanceIndex);
 					
 						v_attributesContainer_afterDeletion := f_cse_retrieveResource(v_containerIndex);