diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 8626ad593432598733737a60f70967dd9b99b877..fc4c24c3263115ebb84173a84256653c33a6fd44 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -777,6 +777,14 @@ module OneM2M_Templates {
 				primitiveContent := {timeSeriesAnnc := ?}
 			}; 
 			
+			/**
+			 * @desc Base UPDATE request primitive for Role resource
+			 */
+			template (value) RequestPrimitive m_updateRoleBase modifies m_update:= {
+				requestIdentifier := "m_updateRole",
+				primitiveContent:= {role := m_contentUpdateRole}
+			};
+			
 			
     	}//end group Update
     	
@@ -5354,6 +5362,30 @@ module OneM2M_Templates {
 			choice := omit
 		};
 		
+		/**
+		 * @desc Base primitiveContent for UPDATE operation for TimeSeriesInstance resource
+		 */
+		template (value) Role_optional m_contentUpdateRole := {
+			resourceName := omit,
+			resourceType := omit,
+			resourceID := omit,
+			parentID := omit,
+			creationTime := omit,
+			lastModifiedTime := omit,
+			labels := omit,
+			accessControlPolicyIDs := omit,
+			expirationTime := omit,
+			dynamicAuthorizationConsultationIDs := omit,
+			roleID := omit,
+			issuer := omit,
+			holder := omit,
+			notBefore := omit,
+			notAfter := omit,
+			roleName := omit,
+			tokenLink := omit,
+			choice := omit
+		};
+		
  		
 	}//end group ContentUpdate
 	
diff --git a/OneM2M_Testcases_AE_Release_3.ttcn b/OneM2M_Testcases_AE_Release_3.ttcn
index f2cc5d4a76b792f098b850cf89016c174670040f..2cf21e891cd5380d3b5f6a76254b91036badba70 100644
--- a/OneM2M_Testcases_AE_Release_3.ttcn
+++ b/OneM2M_Testcases_AE_Release_3.ttcn
@@ -1460,7 +1460,7 @@ module OneM2M_Testcases_AE_Release_3 {
 							[] mcaPortIn.receive(mw_request(?)) -> value vc_request {
 								tc_ac.stop;
 								setverdict(fail, __SCOPE__ & " : Unexpected request received");
-								f_send(e_mcc_in_port, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit))));
+								f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit))));
 							}
 							[] tc_ac.timeout{
 								setverdict(fail, __SCOPE__ & " : Timeout due to no retrieve request received from SUT");
@@ -1567,7 +1567,7 @@ module OneM2M_Testcases_AE_Release_3 {
 					
 					
 					/**
-					 * @desc Check that the IUT sends a notification containing an inner “receiverESPrimRandObject request” to the Receiver if the sharedReceiverESPrimRandObject parameter is not present in the <remoteCSE> resource
+					 * @desc Check that the IUT sends a notification containing an inner “receiverESPrimRandObject request” to the Receiver if the sharedReceiverESPrimRandObject in the <remoteCSE> resource is expired
 					 * 
 					 */						
 					testcase TC_AE_SEC_ESP_RET_003() runs on Tester system CseSystem {
diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn
index 8291ffd4d2d2e8d08672e6579a1100e3dddb447b..f24f523612c65752fd671bf190e3a731f2421484 100644
--- a/OneM2M_Testcases_CSE_Release_3.ttcn
+++ b/OneM2M_Testcases_CSE_Release_3.ttcn
@@ -8837,7 +8837,87 @@ module OneM2M_Testcases_CSE_Release_3 {
 
 					}//end f_CSE_SEC_ROL_RET_005											
 	
-				}// end of group Retrieve				
+				}// end of group Retrieve	
+				
+				group Update {	
+					
+					/**
+					 * @desc Check that the IUT updates the tokenLink attribute of the <role> resource after creating its associated <token> resource
+					 * 
+					 */								
+					testcase TC_CSE_SEC_ROL_UPD_001() runs on Tester system CseSystem {
+						//	Local variables
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+								
+						v_cse1.start(f_CSE_SEC_ROL_UPD_001()); 	
+						v_cse1.done;																				
+					}
+				
+					function f_CSE_SEC_ROL_UPD_001() runs on CseSimu system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest;
+						var template RequestPrimitive v_requestPrimitive := mw_createToken;
+						var PrimitiveContent v_TRRemoteCseResource, v_RRRemoteCseResource;
+						var XSD.ID v_tokenResourceID, v_roleResourceID;
+						var integer v_TRRemoteCseIndex, v_RRRemoteCseIndex, v_tokenResourceIndex;
+		    										   
+						// Test control
+						if(not(PICS_ROL_SUPPORT)) {
+							setverdict(inconc, __SCOPE__ & ": Role Based Access Control Procedure support is required to run this test case");
+							stop;
+						}
+						
+						// Test component configuration
+						f_cf04Up(-, true);
+	
+						// Test adapter configuration
+	
+						// Preamble 	
+						vc_cse2.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); //Token Repository
+						vc_cse2.stop;
+						
+						v_TRRemoteCseIndex := f_getLatestResourceIndex(vc_cse2);
+						v_RRRemoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); //Role Respository
+						v_roleResourceID := fx_assign_originatorRole(); //Creates a <role> resource in Role Repository
+						vc_cse2.start(f_cse_createResourceHandler(v_requestPrimitive));	
+						v_tokenResourceIndex := f_getLatestResourceIndex(vc_cse2);
+						
+						// Test Body
+						v_updateRequest := m_updateRoleBase; 
+						v_updateRequest.resourceType := int32;
+						v_updateRequest.primitiveContent.role.tokenLink := f_getResourceAddress(v_tokenResourceIndex);
+							
+						tc_ac.start;
+						alt {
+							[] mccPortIn.receive(mw_request(v_updateRequest)) -> value vc_request {
+								tc_ac.stop;
+								setverdict(pass, __SCOPE__ & ": Update request containing tokenLink attribute received");
+							}
+							[] mccPortIn.receive(mw_request(?)) {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Wrong message received");
+							}
+							[] tc_ac.timeout {
+								setverdict(fail, __SCOPE__ & ": No answer while waiting for Update");
+							}
+						}
+						
+						f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2);
+					
+						// Postamble
+						f_cse_postamble_deleteResourcesCSE();
+		
+						// Tear down
+						f_cf04Down();
+
+					}//end f_CSE_SEC_ROL_UPD_001			
+									
+				}//end group Update		
+				
+				group Notify {	
+					
+					
+				}//end group Update		
 				
 			}//end group Roles