diff --git a/include/osmocom/gsm/gsup.h b/include/osmocom/gsm/gsup.h
index 5dc2a82..29ea11a 100644
--- a/include/osmocom/gsm/gsup.h
+++ b/include/osmocom/gsm/gsup.h
@@ -105,7 +105,18 @@
 	_OSMO_GSUP_IEI_END_MARKER
 };
 
-/*! GSUP message type */
+/*! GSUP message type
+ * Make sure that new messages follow this scheme:
+ * .----------------------------.
+ * | Ending Bits | Category     |
+ * |----------------------------|
+ * | 00          | Request      |
+ * | 01          | Error        |
+ * | 10          | Result       |
+ * | 11          | Other        |
+ * '----------------------------'
+ * Request, Error and Result messages must only differ in these last two bits.
+ */
 enum osmo_gsup_message_type {
 	OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST	= 0b00000100,
 	OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR	= 0b00000101,
@@ -280,6 +291,7 @@
 int osmo_gsup_decode(const uint8_t *data, size_t data_len,
 		     struct osmo_gsup_message *gsup_msg);
 int osmo_gsup_encode(struct msgb *msg, const struct osmo_gsup_message *gsup_msg);
-int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in);
+int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in)
+	OSMO_DEPRECATED("Use OSMO_GSUP_TO_MSGT_ERROR() instead");
 
 /*! @} */
diff --git a/src/gsm/gsup.c b/src/gsm/gsup.c
index 3d2a8e2..a089322 100644
--- a/src/gsm/gsup.c
+++ b/src/gsm/gsup.c
@@ -95,36 +95,11 @@
 };
 
 
-/*! return the error message type corresponding to \a type_in
- *  \returns matching error message type; -1 on error */
+/*! return the error message type corresponding to \a type_in.
+ *  Deprecated, use OSMO_GSUP_TO_MSGT_ERROR() instead. */
 int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in)
 {
-	switch (type_in) {
-	case OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST:
-		return OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR;
-	case OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST:
-		return OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR;
-	case OSMO_GSUP_MSGT_PURGE_MS_REQUEST:
-		return OSMO_GSUP_MSGT_PURGE_MS_ERROR;
-	case OSMO_GSUP_MSGT_INSERT_DATA_REQUEST:
-		return OSMO_GSUP_MSGT_INSERT_DATA_ERROR;
-	case OSMO_GSUP_MSGT_DELETE_DATA_REQUEST:
-		return OSMO_GSUP_MSGT_DELETE_DATA_ERROR;
-	case OSMO_GSUP_MSGT_LOCATION_CANCEL_REQUEST:
-		return OSMO_GSUP_MSGT_LOCATION_CANCEL_ERROR;
-	case OSMO_GSUP_MSGT_PROC_SS_REQUEST:
-		return OSMO_GSUP_MSGT_PROC_SS_ERROR;
-	case OSMO_GSUP_MSGT_MO_FORWARD_SM_REQUEST:
-		return OSMO_GSUP_MSGT_MO_FORWARD_SM_ERROR;
-	case OSMO_GSUP_MSGT_MT_FORWARD_SM_REQUEST:
-		return OSMO_GSUP_MSGT_MT_FORWARD_SM_ERROR;
-	case OSMO_GSUP_MSGT_READY_FOR_SM_REQUEST:
-		return OSMO_GSUP_MSGT_READY_FOR_SM_ERROR;
-	case OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST:
-		return OSMO_GSUP_MSGT_CHECK_IMEI_ERROR;
-	default:
-		return -1;
-	}
+	return OSMO_GSUP_TO_MSGT_ERROR(type_in);
 }
 
 static int decode_pdp_info(uint8_t *data, size_t data_len,
