diff --git a/openbsc/include/openbsc/gprs_sgsn.h b/openbsc/include/openbsc/gprs_sgsn.h
index df9b826..2c8cc73 100644
--- a/openbsc/include/openbsc/gprs_sgsn.h
+++ b/openbsc/include/openbsc/gprs_sgsn.h
@@ -229,4 +229,10 @@
 struct ctrl_handle *sgsn_controlif_setup(struct gsm_network *, uint16_t port);
 int sgsn_ctrl_cmds_install(void);
 
+/*
+ * ACL handling
+ */
+struct imsi_acl_entry;
+struct imsi_acl_entry *sgsn_acl_lookup(const char *imsi);
+
 #endif /* _GPRS_SGSN_H */
diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c
index 6ba3855..58c5f04 100644
--- a/openbsc/src/gprs/gprs_gmm.c
+++ b/openbsc/src/gprs/gprs_gmm.c
@@ -347,7 +347,10 @@
 	struct msgb *msg = gsm48_msgb_alloc();
 	struct gsm48_hdr *gh;
 	struct gsm48_attach_ack *aa;
-	uint8_t *ptsig, *mid;
+	uint8_t *mid;
+#if 0
+	uint8_t *ptsig;
+#endif
 
 	DEBUGP(DMM, "<- GPRS ATTACH ACCEPT (new P-TMSI=0x%08x)\n", mm->p_tmsi);
 
@@ -454,6 +457,7 @@
 	return gsm48_gmm_sendmsg(msg, 1, mm);
 }
 
+#if 0
 /* Section 9.4.9: Authentication and Ciphering Request */
 static int gsm48_tx_gmm_auth_ciph_req(struct sgsn_mm_ctx *mm, uint8_t *rand,
 				      uint8_t key_seq, uint8_t algo)
@@ -513,6 +517,7 @@
 
 	return gsm48_gmm_sendmsg(msg, 0, mm);
 }
+#endif
 
 /* Section 9.4.10: Authentication and Ciphering Response */
 static int gsm48_rx_gmm_auth_ciph_resp(struct sgsn_mm_ctx *ctx,
@@ -521,11 +526,10 @@
 	struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_gmmh(msg);
 	struct gsm48_auth_ciph_resp *acr = (struct gsm48_auth_ciph_resp *)gh->data;
 	struct tlv_parsed tp;
-	int rc;
 
 	/* FIXME: Stop T3360 */
 
-	rc = tlv_parse(&tp, &gsm48_gmm_att_tlvdef, acr->data,
+	tlv_parse(&tp, &gsm48_gmm_att_tlvdef, acr->data,
 			(msg->data + msg->len) - acr->data, 0, 0);
 
 	/* FIXME: compare ac_ref? */
@@ -629,7 +633,7 @@
 				struct gprs_llc_llme *llme)
 {
 	struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_gmmh(msg);
-	uint8_t *cur = gh->data, *msnc, *mi, *old_ra_info, *ms_ra_acc_cap;
+	uint8_t *cur = gh->data, *msnc, *mi, *ms_ra_acc_cap;
 	uint8_t msnc_len, att_type, mi_len, mi_type, ms_ra_acc_cap_len;
 	uint16_t drx_par;
 	uint32_t tmsi;
@@ -672,8 +676,7 @@
 	DEBUGPC(DMM, "MI(%s) type=\"%s\" ", mi_string,
 		get_value_string(gprs_att_t_strs, att_type));
 
-	/* Old routing area identification 10.5.5.15 */
-	old_ra_info = cur;
+	/* Old routing area identification 10.5.5.15. Skip it */
 	cur += 6;
 
 	/* MS Radio Access Capability 10.5.5.12a */
@@ -907,12 +910,10 @@
 {
 	struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_gmmh(msg);
 	uint8_t *cur = gh->data;
-	uint8_t *ms_ra_acc_cap;
 	uint8_t ms_ra_acc_cap_len;
 	struct gprs_ra_id old_ra_id;
 	struct tlv_parsed tp;
 	uint8_t upd_type;
-	int rc;
 
 	/* Update Type 10.5.5.18 */
 	upd_type = *cur++ & 0x0f;
@@ -926,14 +927,13 @@
 
 	/* MS Radio Access Capability 10.5.5.12a */
 	ms_ra_acc_cap_len = *cur++;
-	ms_ra_acc_cap = cur;
 	if (ms_ra_acc_cap_len > 52)
 		return gsm48_tx_gmm_ra_upd_rej(msg, GMM_CAUSE_PROTO_ERR_UNSPEC);
 	cur += ms_ra_acc_cap_len;
 
 	/* Optional: Old P-TMSI Signature, Requested READY timer, TMSI Status,
 	 * DRX parameter, MS network capability */
-	rc = tlv_parse(&tp, &gsm48_gmm_att_tlvdef, cur,
+	tlv_parse(&tp, &gsm48_gmm_att_tlvdef, cur,
 			(msg->data + msg->len) - cur, 0, 0);
 
 	switch (upd_type) {
@@ -1165,7 +1165,7 @@
 	osmo_timer_schedule(&pdp->timer, seconds, 0);
 }
 
-
+#if 0
 static void msgb_put_pdp_addr_ipv4(struct msgb *msg, uint32_t ipaddr)
 {
 	uint8_t v[6];
@@ -1186,6 +1186,7 @@
 
 	msgb_tlv_put(msg, GSM48_IE_GSM_PDP_ADDR, sizeof(v), v);
 }
+#endif
 
 /* Section 9.5.2: Ativate PDP Context Accept */
 int gsm48_tx_gsm_act_pdp_acc(struct sgsn_pdp_ctx *pdp)
