diff --git a/src/gprs/gprs_gmm.c b/src/gprs/gprs_gmm.c
index e6751db..dfec604 100644
--- a/src/gprs/gprs_gmm.c
+++ b/src/gprs/gprs_gmm.c
@@ -1354,33 +1354,6 @@
 	ctx->ra = ra_id;
 	if (ctx->ran_type == MM_CTX_T_GERAN_Gb)
 		ctx->gb.cell_id = cid;
-	else if (ctx->ran_type == MM_CTX_T_UTRAN_Iu) {
-		/* DEVELOPMENT HACK: Our current HLR does not support 3G
-		 * authentication tokens. A new HLR/VLR implementation is being
-		 * developed. Until it is ready and actual milenage
-		 * authentication is properly supported, we are hardcoding a
-		 * fixed Ki and use 2G auth. */
-		unsigned char tmp_rand[16];
-		/* Ki 000102030405060708090a0b0c0d0e0f */
-		struct osmo_sub_auth_data auth = {
-			.type	= OSMO_AUTH_TYPE_GSM,
-			.algo	= OSMO_AUTH_ALG_COMP128v1,
-			.u.gsm.ki = {
-				0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
-				0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d,
-				0x0e, 0x0f
-			},
-		};
-		/* XXX: Hack to make 3G auth work with special SIM card */
-		ctx->auth_state = SGSN_AUTH_AUTHENTICATE;
-
-		RAND_bytes(tmp_rand, 16);
-
-		memset(&ctx->auth_triplet.vec, 0, sizeof(ctx->auth_triplet.vec));
-		osmo_auth_gen_vec(&ctx->auth_triplet.vec, &auth, tmp_rand);
-
-		ctx->auth_triplet.key_seq = 0;
-	}
 
 	/* Update MM Context with other data */
 	ctx->drx_parms = drx_par;
diff --git a/src/libiu/iu.c b/src/libiu/iu.c
index 8ba6fa4..932b217 100644
--- a/src/libiu/iu.c
+++ b/src/libiu/iu.c
@@ -225,25 +225,10 @@
 {
 	struct osmo_scu_prim *prim;
 	struct msgb *msg;
-	uint8_t ik[16];
-	uint8_t ck[16];
-	unsigned int i;
-
-	/* C5 function to derive IK from Kc */
-	for (i = 0; i < 4; i++)
-		ik[i] = tp->vec.kc[i] ^ tp->vec.kc[i+4];
-	memcpy(ik+4, tp->vec.kc, 8);
-	for (i = 12; i < 16; i++)
-		ik[i] = ik[i-12];
-
-	if (send_ck) {
-		/* C4 function to derive CK from Kc */
-		memcpy(ck, tp->vec.kc, 8);
-		memcpy(ck+8, tp->vec.kc, 8);
-	}
 
 	/* create RANAP message */
-	msg = ranap_new_msg_sec_mod_cmd(ik, send_ck? ck : NULL, new_key ? RANAP_KeyStatus_new : RANAP_KeyStatus_old);
+	msg = ranap_new_msg_sec_mod_cmd(tp->vec.ik, send_ck? tp->vec.ck : NULL,
+			new_key ? RANAP_KeyStatus_new : RANAP_KeyStatus_old);
 	msg->l2h = msg->data;
 	/* wrap RANAP message in SCCP N-DATA.req */
 	prim = (struct osmo_scu_prim *) msgb_push(msg, sizeof(*prim));
