diff --git a/include/osmocom/core/msgb.h b/include/osmocom/core/msgb.h
index 2449151..1bb5fe5 100644
--- a/include/osmocom/core/msgb.h
+++ b/include/osmocom/core/msgb.h
@@ -130,8 +130,10 @@
 #define msgb_l2(m)	((void *)(m->l2h))
 /*! obtain L3 header of msgb */
 #define msgb_l3(m)	((void *)(m->l3h))
+/*! obtain L4 header of msgb */
+#define msgb_l4(m)	((void *)(m->l4h))
 /*! obtain SMS header of msgb */
-#define msgb_sms(m)	((void *)(m->l4h))
+#define msgb_sms(m)	msgb_l4(m)
 
 /*! determine length of L1 message
  *  \param[in] msgb message buffer
@@ -566,6 +568,13 @@
 void msgb_set_talloc_ctx(void *ctx) OSMO_DEPRECATED("Use msgb_talloc_ctx_init() instead");
 int msgb_printf(struct msgb *msgb, const char *format, ...);
 
+static inline const char *msgb_hexdump_l1(const struct msgb *msg)
+{
+	if (!msgb_l1(msg) || !(msgb_l1len(msg)))
+		return "[]";
+	return osmo_hexdump((const unsigned char *) msgb_l1(msg), msgb_l1len(msg));
+}
+
 static inline const char *msgb_hexdump_l2(const struct msgb *msg)
 {
 	if (!msgb_l2(msg) || !(msgb_l2len(msg)))
@@ -580,4 +589,11 @@
 	return osmo_hexdump((const unsigned char*) msgb_l3(msg), msgb_l3len(msg));
 }
 
+static inline const char *msgb_hexdump_l4(const struct msgb *msg)
+{
+	if (!msgb_l4(msg) || !(msgb_l4len(msg)))
+		return "[]";
+	return osmo_hexdump((const unsigned char*) msgb_l4(msg), msgb_l4len(msg));
+}
+
 /*! @} */
