diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index c124fae..f011041 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -81,7 +81,8 @@
 
 /* the data structure stored in msgb->cb for openbsc apps */
 struct openbsc_msgb_cb {
-	unsigned char *gmmh;
+	unsigned char *bssgph;
+	unsigned char *llch;
 
 	u_int16_t nsei;
 	u_int16_t bvci;
@@ -90,10 +91,11 @@
 } __attribute__((packed));
 #define OBSC_MSGB_CB(__msgb)	((struct openbsc_msgb_cb *)&((__msgb)->cb[0]))
 #define msgb_tlli(__x)		OBSC_MSGB_CB(__x)->tlli
-#define msgb_gmmh(__x)		OBSC_MSGB_CB(__x)->gmmh
 #define msgb_nsei(__x)		OBSC_MSGB_CB(__x)->nsei
 #define msgb_bvci(__x)		OBSC_MSGB_CB(__x)->bvci
-#define msgb_llch(__x)		(__x)->l4h
+#define msgb_gmmh(__x)		(__x)->l3h
+#define msgb_bssgph(__x)	OBSC_MSGB_CB(__x)->bssgph
+#define msgb_llch(__x)		OBSC_MSGB_CB(__x)->llch
 
 struct msgb;
 typedef int gsm_cbfn(unsigned int hooknum,
diff --git a/openbsc/src/gprs_bssgp.c b/openbsc/src/gprs_bssgp.c
index 4b58213..330d8c8 100644
--- a/openbsc/src/gprs_bssgp.c
+++ b/openbsc/src/gprs_bssgp.c
@@ -200,7 +200,7 @@
 	}
 	if (orig_msg)
 		msgb_tvlv_put(msg, BSSGP_IE_PDU_IN_ERROR,
-			      msgb_l3len(orig_msg), orig_msg->l3h);
+			      msgb_l3len(orig_msg), msgb_bssgph(orig_msg));
 
 	return gprs_ns_sendmsg(bssgp_nsi, msg);
 }
@@ -257,7 +257,7 @@
 /* Uplink unit-data */
 static int bssgp_rx_ul_ud(struct msgb *msg, u_int16_t bvci)
 {
-	struct bssgp_ud_hdr *budh = (struct bssgp_ud_hdr *) msg->l3h;
+	struct bssgp_ud_hdr *budh = (struct bssgp_ud_hdr *) msgb_bssgph(msg);
 	int data_len = msgb_l3len(msg) - sizeof(*budh);
 	struct tlv_parsed tp;
 	int rc;
@@ -280,7 +280,8 @@
 
 static int bssgp_rx_suspend(struct msgb *msg, u_int16_t bvci)
 {
-	struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msg->l3h;
+	struct bssgp_normal_hdr *bgph =
+			(struct bssgp_normal_hdr *) msgb_bssgph(msg);
 	int data_len = msgb_l3len(msg) - sizeof(*bgph);
 	struct tlv_parsed tp;
 	int rc;
@@ -301,7 +302,8 @@
 
 static int bssgp_rx_resume(struct msgb *msg, u_int16_t bvci)
 {
-	struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msg->l3h;
+	struct bssgp_normal_hdr *bgph =
+			(struct bssgp_normal_hdr *) msgb_bssgph(msg);
 	int data_len = msgb_l3len(msg) - sizeof(*bgph);
 	struct tlv_parsed tp;
 	int rc;
@@ -339,10 +341,11 @@
 				   ns_bvci);
 }
 
-/* We expect msg->l3h to point to the BSSGP header */
+/* We expect msgb_bssgph() to point to the BSSGP header */
 int gprs_bssgp_rcvmsg(struct msgb *msg, u_int16_t ns_bvci)
 {
-	struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msg->l3h;
+	struct bssgp_normal_hdr *bgph =
+			(struct bssgp_normal_hdr *) msgb_bssgph(msg);
 	struct tlv_parsed tp;
 	u_int8_t pdu_type = bgph->pdu_type;
 	int data_len = msgb_l3len(msg) - sizeof(*bgph);
diff --git a/openbsc/src/gprs_llc.c b/openbsc/src/gprs_llc.c
index aea40d3..883eedb 100644
--- a/openbsc/src/gprs_llc.c
+++ b/openbsc/src/gprs_llc.c
@@ -428,7 +428,7 @@
 /* receive an incoming LLC PDU (BSSGP-UL-UNITDATA-IND, 7.2.4.2) */
 int gprs_llc_rcvmsg(struct msgb *msg, struct tlv_parsed *tv)
 {
-	struct bssgp_ud_hdr *udh = (struct bssgp_ud_hdr *) msg->l3h;
+	struct bssgp_ud_hdr *udh = (struct bssgp_ud_hdr *) msgb_bssgph(msg);
 	struct gprs_llc_hdr *lh = msgb_llch(msg);
 	struct gprs_llc_hdr_parsed llhp;
 	struct gprs_llc_entity *lle;
diff --git a/openbsc/src/gprs_ns.c b/openbsc/src/gprs_ns.c
index 7f94b97..470ccb0 100644
--- a/openbsc/src/gprs_ns.c
+++ b/openbsc/src/gprs_ns.c
@@ -266,7 +266,7 @@
 
 	/* spare octet in data[0] */
 	bvci = nsh->data[1] << 8 | nsh->data[2];
-	msg->l3h = &nsh->data[3];
+	msgb_bssgph(msg) = &nsh->data[3];
 
 	/* call upper layer (BSSGP) */
 	return nsvc->nsi->cb(GPRS_NS_EVT_UNIT_DATA, nsvc, msg, bvci);
