diff --git a/include/osmocom/gsm/gsup.h b/include/osmocom/gsm/gsup.h
index 5cfe1ec..1a8a3b2 100644
--- a/include/osmocom/gsm/gsup.h
+++ b/include/osmocom/gsm/gsup.h
@@ -179,6 +179,6 @@
 
 int osmo_gsup_decode(const uint8_t *data, size_t data_len,
 		     struct osmo_gsup_message *gsup_msg);
-void osmo_gsup_encode(struct msgb *msg, const struct osmo_gsup_message *gsup_msg);
+int osmo_gsup_encode(struct msgb *msg, const struct osmo_gsup_message *gsup_msg);
 
 /*! @} */
diff --git a/src/gsm/gsup.c b/src/gsm/gsup.c
index eb829f7..b6ac56d 100644
--- a/src/gsm/gsup.c
+++ b/src/gsm/gsup.c
@@ -475,8 +475,9 @@
 /*! Encode a GSUP message
  *  \param[out] msg message buffer to which encoded message is written
  *  \param[in] gsup_msg \ref osmo_gsup_message data to be encoded
+ *  \returns 0 on success; negative otherwise
  */
-void osmo_gsup_encode(struct msgb *msg, const struct osmo_gsup_message *gsup_msg)
+int osmo_gsup_encode(struct msgb *msg, const struct osmo_gsup_message *gsup_msg)
 {
 	uint8_t u8;
 	int idx;
@@ -484,14 +485,16 @@
 	size_t bcd_len;
 
 	/* generic part */
-	OSMO_ASSERT(gsup_msg->message_type);
+	if(!gsup_msg->message_type)
+		return -ENOMEM;
+
 	msgb_v_put(msg, gsup_msg->message_type);
 
 	bcd_len = gsm48_encode_bcd_number(bcd_buf, sizeof(bcd_buf), 0,
 					  gsup_msg->imsi);
 
-	OSMO_ASSERT(bcd_len > 1);
-	OSMO_ASSERT(bcd_len <= sizeof(bcd_buf));
+	if (bcd_len <= 0 || bcd_len > sizeof(bcd_buf))
+		return -EINVAL;
 
 	/* Note that gsm48_encode_bcd_number puts the length into the first
 	 * octet. Since msgb_tlv_put will add this length byte, we'll have to
@@ -560,6 +563,8 @@
 		msgb_tlv_put(msg, OSMO_GSUP_CHARG_CHAR_IE,
 				gsup_msg->pdp_charg_enc_len, gsup_msg->pdp_charg_enc);
 	}
+
+	return 0;
 }
 
 /*! @} */
diff --git a/tests/gsup/gsup_test.c b/tests/gsup/gsup_test.c
index eddcc92..b55f1d9 100644
--- a/tests/gsup/gsup_test.c
+++ b/tests/gsup/gsup_test.c
@@ -220,7 +220,9 @@
 		if (rc < 0)
 			passed = false;
 
-		osmo_gsup_encode(msg, &gm);
+		rc = osmo_gsup_encode(msg, &gm);
+		if (rc < 0)
+			passed = false;
 
 		fprintf(stderr, "  generated message: %s\n", msgb_hexdump(msg));
 		fprintf(stderr, "  original message:  %s\n", osmo_hexdump(t->data, t->data_len));
