diff --git a/OneM2M_Testcases_CSE_Release_4.ttcn b/OneM2M_Testcases_CSE_Release_4.ttcn
index 6d2f1e6de87aedbf863c73cfe86ce4dfdd2e4652..23f56df30eab27a1971febe1950ebaea5dcfbadb 100644
--- a/OneM2M_Testcases_CSE_Release_4.ttcn
+++ b/OneM2M_Testcases_CSE_Release_4.ttcn
@@ -5950,6 +5950,304 @@ module OneM2M_Testcases_CSE_Release_4 {
 				} // f_CSE_PP_004_UPD
 			} //end group TC_CSE_PP_004
 			
+			group TC_CSE_PP_005 {
+				/**
+				* @desc Check that the IUT rejects the request when the originator does not have retrieve privileges for <primitiveProfile> resource referenced by the PrimitiveProfileIdentifier parameter
+				*  
+				*/
+				testcase TC_CSE_PP_005_CRE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_PP_005_CRE()); 	
+					v_ae1.done;					
+				}
+													
+				function f_CSE_PP_005_CRE() runs on AeSimu system CseSystem {
+					// Local variables
+					var template RequestPrimitive v_createPrimitveProfile;
+					var RequestPrimitive v_requestContainerCreate;
+					var ResponsePrimitive v_responsePrimitive;
+					var integer v_aeIndex := -1;
+					var integer v_primitiveProfileIndex := -1;
+					var MsgIn v_response;
+					
+					// Preamble 
+					f_cse_createAccessControlPolicyAux(-, -, int61);//c_CUDNDi) //No resource retrieval privilege		
+					v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -);
+					
+					// Primitive Profile with add atribute "maxByte" = "100" for content resource.
+					v_createPrimitveProfile := m_createPrimitveProfileAddContainerMaxByte100({f_getOriginator(v_aeIndex)});
+					v_primitiveProfileIndex := f_cse_createResource(int62, v_createPrimitveProfile, v_aeIndex);
+
+
+				
+					//Create container resource without "maxByte" primitive
+					v_requestContainerCreate := f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex);
+					// Link Primitve Prifle, which was created, to this Request
+					v_requestContainerCreate.primitiveProfileIdentifier := f_getResourceId(vc_resourcesList[v_primitiveProfileIndex].resource);
+				
+					f_send(e_mcaPort, m_request(v_requestContainerCreate));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4136))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": IUT does not apply the primitive profile  PRIMITIVE_PROFILE_NOT_ACCESSIBLE");
+							
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Mismatch in status response code from IUT!");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": IUT accepted the create request with non existing primtive profile!");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer from IUT for the last Request!");
+						}
+					}
+							
+					//Postamble
+					f_cse_postamble_deleteResources();
+
+					//Tear down
+					f_cf01Down();
+				} // f_CSE_PP_005_CRE
+				
+				/**
+				* @desc Check that the IUT rejects the request when the originator does not have retrieve privileges for <primitiveProfile> resource referenced by the PrimitiveProfileIdentifier parameter
+				*  
+				*/
+				testcase TC_CSE_PP_005_RET() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_PP_005_RET()); 	
+					v_ae1.done;					
+				}
+													
+				function f_CSE_PP_005_RET() runs on AeSimu system CseSystem {
+					// Local variables
+					var template RequestPrimitive v_createPrimitveProfile;
+					var RequestPrimitive v_requestContainerCreate;
+					var integer v_aeIndex := -1;
+					var integer v_primitiveProfileIndex := -1;
+					var integer v_containerParentIndex := -1;
+					var MsgIn v_response;
+					var RequestPrimitive v_retrieveRequest;
+					var template PrimitiveContent v_retriveContentResponse;
+					
+					// Preamble 
+					f_cse_createAccessControlPolicyAux(-, -, int61);//c_CUDNDi) //No resource retrieval privilege		
+					v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -);
+
+					// Primitive Profile with Add atribute resultContent for container resource.
+					v_createPrimitveProfile := m_createPrimitveProfileAddResultContentTo4({f_getOriginator(v_aeIndex)});
+					v_primitiveProfileIndex := f_cse_createResource(int62, v_createPrimitveProfile, v_aeIndex);
+					
+					//Create Container resource
+					v_containerParentIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex);
+					
+					//Create child Container resource
+					f_cse_createResource(int3, m_createContainerBase, v_aeIndex);
+					
+					//Retrieve container with link to Primitve Profile
+					v_retrieveRequest := valueof(m_retrieve(f_getResourceAddress(v_containerParentIndex), f_getOriginator(v_containerParentIndex)));
+					v_requestContainerCreate.primitiveProfileIdentifier := f_getResourceId(vc_resourcesList[v_primitiveProfileIndex].resource);
+					v_requestContainerCreate.resultContent := int1; // only attriubutes
+					
+					// Set expected container of retrieve request as per Result Content=1, as the Primtive Prfile is not accessible
+					//v_retriveContentResponse.container := mw_contentContainer_rc1;
+					
+					f_send(e_mcaPort, m_request(v_retrieveRequest));
+					tc_ac.start;
+					alt {
+						
+						// Commenting out until TP is frozen
+						// Expect response as per resultContent=4, specified in Primitive Profile
+						/*
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_retriveContentResponse))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": ResultContent from Primtive Profile added to Retrieve Request");
+						} */
+
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4136))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": IUT does not apply the primitive profile  PRIMITIVE_PROFILE_NOT_ACCESSIBLE");
+							
+						}
+						
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Mismatch in status response code from IUT!");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": IUT accepted the create request with non existing primtive profile!");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer from IUT for the last Request!");
+						}
+					}
+							
+					//Postamble
+					f_cse_postamble_deleteResources();
+
+					//Tear down
+					f_cf01Down();
+				} // f_CSE_PP_005_RET
+				
+				/**
+				* @desc Check that the IUT rejects the request when the originator does not have retrieve privileges for <primitiveProfile> resource referenced by the PrimitiveProfileIdentifier parameter
+				*  
+				*/
+				testcase TC_CSE_PP_005_DEL() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_PP_005_DEL()); 	
+					v_ae1.done;					
+				}
+													
+				function f_CSE_PP_005_DEL() runs on AeSimu system CseSystem {
+					// Local variables
+					var template RequestPrimitive v_createPrimitveProfile;
+					var integer v_aeIndex := -1;
+					var integer v_primitiveProfileIndex := -1;
+					var integer v_containerIndex := -1;
+					var MsgIn v_response;
+					var RequestPrimitive v_deleteRequest;
+					
+					// Preamble 
+					f_cse_createAccessControlPolicyAux(-, -, int61);//c_CUDNDi) //No resource retrieval privilege		
+					v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -);
+					
+					// Primitive Profile with Add atribute resultContent=1 for container resource.
+					v_createPrimitveProfile := m_createPrimitveProfileAddResultContentTo1({f_getOriginator(v_aeIndex)});
+					v_primitiveProfileIndex := f_cse_createResource(int62, v_createPrimitveProfile, v_aeIndex);
+					
+					//Create Container resource
+					v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex);
+					
+					//Delete container resource with default resultContent (0-nothing)
+					v_deleteRequest := valueof(m_delete(f_getResourceAddress(v_containerIndex), f_getOriginator(v_containerIndex)));
+					v_deleteRequest.primitiveProfileIdentifier := f_getResourceId(vc_resourcesList[v_primitiveProfileIndex].resource);
+					
+					f_send(e_mcaPort, m_request(v_deleteRequest));
+					tc_ac.start;
+
+					alt {
+						/*
+						// If primitive profile awas ignored, value of resultContent(0=nothing) will be applied
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2002, omit))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Primitive Profile ignored as it is not accessible/does not exist");
+						}*/
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4136))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": IUT does not apply the primitive profile  PRIMITIVE_PROFILE_NOT_ACCESSIBLE");
+							
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Mismatch in status response code from IUT!");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": IUT accepted the create request with non existing primtive profile!");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer from IUT for the last Request!");
+						}
+					}
+							
+					//Postamble
+					f_cse_postamble_deleteResources();
+
+					//Tear down
+					f_cf01Down();
+				} // f_CSE_PP_005_DEL
+				
+				
+				/**
+				* @desc Check that the IUT rejects the request when the originator does not have retrieve privileges for <primitiveProfile> resource referenced by the PrimitiveProfileIdentifier parameter
+				*  
+				*/
+				testcase TC_CSE_PP_005_UPD() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_PP_005_UPD()); 	
+					v_ae1.done;					
+				}
+													
+				function f_CSE_PP_005_UPD() runs on AeSimu system CseSystem {
+					// Local variables
+					var template RequestPrimitive v_createPrimitveProfile;
+					var RequestPrimitive v_updateContainer;
+					var ResponsePrimitive v_responsePrimitive;
+					var integer v_aeIndex := -1;
+					var integer v_primitiveProfileIndex := -1;
+					var integer v_createdContainerResource := -1;
+					var MsgIn v_response;
+					
+					// Preamble 
+					f_cse_createAccessControlPolicyAux(-, -, int61);//c_CUDNDi) //No resource retrieval privilege		
+					v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -);
+					
+					// Primitive Profile with add atribute "maxByte" = "100" for content resource.
+					v_createPrimitveProfile := m_createPrimitveProfileAddContainerMaxByte100({f_getOriginator(v_aeIndex)});
+					v_primitiveProfileIndex := f_cse_createResource(int62, v_createPrimitveProfile, v_aeIndex);
+					
+				
+					//Create container resource without Primtive Profile ID and no maxByte attribte
+					v_createdContainerResource := f_cse_createResource(int3, m_createContainerBase, v_aeIndex);
+					
+					//Update container request with Primitive Profile ID, and not including update for maxByte
+					v_updateContainer:= f_getUpdateRequestPrimitive(int3, v_aeIndex, m_updateContainerBase);
+
+					// Link Primitve Prifle created to this Request
+					v_updateContainer.primitiveProfileIdentifier := f_getResourceId(vc_resourcesList[v_primitiveProfileIndex].resource);
+				
+					f_send(e_mcaPort, m_request(v_updateContainer));
+					tc_ac.start;
+					alt {
+						
+						/* commented out until TP is frozen-reject/accept
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response {
+							tc_ac.stop;
+							// Check that IUT applied the Primitve Profile
+							if(v_response.primitive.responsePrimitive.primitiveContent.container.maxByteSize == 100){
+								setverdict(fail, __SCOPE__ & ": maxByteSize primitive value in invalid PrimitveProfile applied  to Update Container Request!");
+							} else {
+								setverdict(pass, __SCOPE__ & ": maxByteSize primitive value in invalid PrimitveProfile not applied to Update Container Request!");
+							}
+						} */
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4136))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": IUT does not apply the primitive profile  PRIMITIVE_PROFILE_NOT_ACCESSIBLE");
+							
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Mismatch in status response code from IUT!");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": IUT accepted the create request with non existing primtive profile!");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer from IUT for the last Request!");
+						}
+					}
+							
+					//Postamble
+					f_cse_postamble_deleteResources();
+
+					//Tear down
+					f_cf01Down();
+				} // f_CSE_PP_005_UPD
+			} //end group TC_CSE_PP_005
+			
+		
+			
 			group TC_CSE_PP_006 {
 			
 				/**
@@ -6200,6 +6498,120 @@ module OneM2M_Testcases_CSE_Release_4 {
 				} // f_CSE_PP_006_UPD
 			}//end group TC_CSE_PP_006
 
+			/**
+			 * @desc Check that the IUT rejects the creation of <primitiveProfile> resource request when the request parameters or resource attributes defined in the additions and deletions attributes of the referenced <primitiveProfile> resource are not valid
+			 *
+			 */
+			testcase TC_CSE_PP_007() runs on Tester system CseSystem {
+				var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+				v_ae1.start(f_CSE_PP_007());
+				v_ae1.done;
+			}
+													
+			function f_CSE_PP_007() runs on AeSimu system CseSystem {
+				// Local variables
+				var RequestPrimitive v_createPrimitveProfile;
+				var RequestPrimitive v_updateContainer;
+				var ResponsePrimitive v_responsePrimitive;
+				var integer v_aeIndex := -1;
+				var integer v_primitiveProfileIndex := -1;
+				var integer v_acpResourceIndex := -1;
+				var MsgIn v_response;
+				var RequestPrimitive v_updateAcpRequest;
+					
+				// Preamble
+				f_cse_createAccessControlPolicyAux(-, -, int63);
+				v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -);
+					
+				// Primitive Profile With Invalid Additions Or Deletions attribute
+				v_createPrimitveProfile := valueof(m_createPrimitveProfileWithInvalidAdditionsOrDeletions({f_getOriginator(v_aeIndex)}));
+				
+				f_send(e_mcaPort, m_request(v_createPrimitveProfile));
+				tc_ac.start;
+				alt {
+					[] mcaPort.receive(mw_response(mw_responsePrimitive(int4137))) -> value v_response {
+						tc_ac.stop;
+						setverdict(pass, __SCOPE__ & ": IUT rejected Primitve Profile with PRIMITIVE_PROFILE_BAD REQUEST");
+					}
+					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+						tc_ac.stop;
+						setverdict(fail, __SCOPE__ & ": Mismatch in status response code from IUT!");
+					}
+					[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+						tc_ac.stop;
+						setverdict(fail, __SCOPE__ & ": IUT accepted Primitve Profile with invalid parametres/attributes in additions/deletions!");
+					}
+					[] tc_ac.timeout {
+						setverdict(fail, __SCOPE__ & ": No answer from IUT for the last Request!");
+					}
+				}
+							
+				//Postamble
+				f_cse_postamble_deleteResources();
+
+				//Tear down
+				f_cf01Down();
+			} // f_CSE_PP_007
+
+
+			/**
+			 * @desc Check that the IUT rejects the update request of <primitiveProfile> resource when the request parameters or resource attributes defined in the additions and deletions attributes of the referenced <primitiveProfile> resource are not valid
+			 *
+			 */
+			testcase TC_CSE_PP_008() runs on Tester system CseSystem {
+				var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+				v_ae1.start(f_CSE_PP_008());
+				v_ae1.done;
+			}
+													
+			function f_CSE_PP_008() runs on AeSimu system CseSystem {
+				// Local variables
+				var template RequestPrimitive v_createPrimitveProfile;
+				var integer v_aeIndex := -1;
+				var integer v_primitiveProfileIndex := -1;
+				var MsgIn v_response;
+				var RequestPrimitive v_updatePrimitiveProfileRequest;
+					
+				// Preamble
+				f_cse_createAccessControlPolicyAux(-, -, int63);
+				v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -);
+					
+				// Primitive Profile with add atribute "maxByte" = "100" for content resource.
+			   	v_createPrimitveProfile := m_createPrimitveProfileAddContainerMaxByte100({f_getOriginator(v_aeIndex)});
+			   	v_primitiveProfileIndex := f_cse_createResource(int62, v_createPrimitveProfile, v_aeIndex);
+			    
+				v_updatePrimitiveProfileRequest := f_getUpdateRequestPrimitive(int62, v_primitiveProfileIndex, m_updatePrimitiveProfileWithInvalidAdditionsOrDeletions);
+				
+				f_send(e_mcaPort, m_request(v_updatePrimitiveProfileRequest));
+				tc_ac.start;
+				alt {
+					[] mcaPort.receive(mw_response(mw_responsePrimitive(int4137))) -> value v_response {
+						tc_ac.stop;
+						setverdict(pass, __SCOPE__ & ": IUT rejected Primitve Profile with PRIMITIVE_PROFILE_BAD REQUEST");
+					}
+					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+						tc_ac.stop;
+						setverdict(fail, __SCOPE__ & ": Mismatch in status response code from IUT!");
+					}
+					[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+						tc_ac.stop;
+						setverdict(fail, __SCOPE__ & ": IUT accepted Primitve Profile with invalid parametres/attributes in additions/deletions!");
+					}
+					[] tc_ac.timeout {
+						setverdict(fail, __SCOPE__ & ": No answer from IUT for the last Request!");
+					}
+				}
+
+				//Postamble
+				f_cse_postamble_deleteResources();
+
+				//Tear down
+				f_cf01Down();
+			} // f_CSE_PP_008
+
+
 			/**
 			 * @desc Check that the IUT rejects the creation of a <primitiveProfile> resource when a mutual exclusivity check is failed, on the names of the attributes or parameters specified in the additions and deletions attributes.
 			 *
@@ -18603,4 +19015,4 @@ module OneM2M_Testcases_CSE_Release_4 {
 		
 	}//end group CSE
 
-}
\ No newline at end of file
+}