diff --git a/src/modules/rlm_wimax/rlm_wimax.c b/src/modules/rlm_wimax/rlm_wimax.c
index b2d474a..1d70546 100644
--- a/src/modules/rlm_wimax/rlm_wimax.c
+++ b/src/modules/rlm_wimax/rlm_wimax.c
@@ -211,9 +211,13 @@ static int wimax_postauth(void *instance, REQUEST *request)
 	usage_data[23] = 0x01;
 
 	/*
-	 *	MIP-RK-1 = HMAC-SSHA256(EMSK, usage-data | 0x01)
+	 *	Initialize HMAC context.
 	 */
 	HMAC_CTX_init(&hmac);
+
+	/*
+	 *	MIP-RK-1 = HMAC-SSHA256(EMSK, usage-data | 0x01)
+	 */
 	HMAC_Init_ex(&hmac, emsk->vp_octets, emsk->length, EVP_sha256(), NULL);
 	
 	HMAC_Update(&hmac, &usage_data[0], sizeof(usage_data));
@@ -222,7 +226,6 @@ static int wimax_postauth(void *instance, REQUEST *request)
 	/*
 	 *	MIP-RK-2 = HMAC-SSHA256(EMSK, MIP-RK-1 | usage-data | 0x01)
 	 */
-	HMAC_CTX_init(&hmac);
 	HMAC_Init_ex(&hmac, emsk->vp_octets, emsk->length, EVP_sha256(), NULL);
 	
 	HMAC_Update(&hmac, (const uint8_t *) &mip_rk_1, rk1_len);
@@ -239,7 +242,6 @@ static int wimax_postauth(void *instance, REQUEST *request)
 	/*
 	 *	MIP-SPI = HMAC-SSHA256(MIP-RK, "SPI CMIP PMIP");
 	 */
-	HMAC_CTX_init(&hmac);
 	HMAC_Init_ex(&hmac, mip_rk, rk_len, EVP_sha256(), NULL);
 	
 	HMAC_Update(&hmac, (const uint8_t *) "SPI CMIP PMIP", 12);
@@ -304,7 +306,6 @@ static int wimax_postauth(void *instance, REQUEST *request)
 		 *	MN-HA-PMIP4 =
 		 *	   H(MIP-RK, "PMIP4 MN HA" | HA-IPv4 | MN-NAI);
 		 */
-		HMAC_CTX_init(&hmac);
 		HMAC_Init_ex(&hmac, mip_rk, rk_len, EVP_sha1(), NULL);
 
 		HMAC_Update(&hmac, (const uint8_t *) "PMIP4 MN HA", 11);
@@ -356,7 +357,6 @@ static int wimax_postauth(void *instance, REQUEST *request)
 		 *	MN-HA-CMIP4 =
 		 *	   H(MIP-RK, "CMIP4 MN HA" | HA-IPv4 | MN-NAI);
 		 */
-		HMAC_CTX_init(&hmac);
 		HMAC_Init_ex(&hmac, mip_rk, rk_len, EVP_sha1(), NULL);
 
 		HMAC_Update(&hmac, (const uint8_t *) "CMIP4 MN HA", 11);
@@ -408,7 +408,6 @@ static int wimax_postauth(void *instance, REQUEST *request)
 		 *	MN-HA-CMIP6 =
 		 *	   H(MIP-RK, "CMIP6 MN HA" | HA-IPv6 | MN-NAI);
 		 */
-		HMAC_CTX_init(&hmac);
 		HMAC_Init_ex(&hmac, mip_rk, rk_len, EVP_sha1(), NULL);
 
 		HMAC_Update(&hmac, (const uint8_t *) "CMIP6 MN HA", 11);
@@ -457,7 +456,6 @@ static int wimax_postauth(void *instance, REQUEST *request)
 	 */
 	fa_rk = pairfind(request->reply->vps, WIMAX2ATTR(14));
 	if (fa_rk && (fa_rk->length <= 1)) {
-		HMAC_CTX_init(&hmac);
 		HMAC_Init_ex(&hmac, mip_rk, rk_len, EVP_sha1(), NULL);
 		
 		HMAC_Update(&hmac, (const uint8_t *) "FA-RK", 5);
@@ -490,7 +488,6 @@ static int wimax_postauth(void *instance, REQUEST *request)
 	 */
 	ip = pairfind(request->reply->vps, 1901);
 	if (fa_rk && ip && mn_nai) {
-		HMAC_CTX_init(&hmac);
 		HMAC_Init_ex(&hmac, fa_rk->vp_octets, fa_rk->length,
 			     EVP_sha1(), NULL);
 		
