diff --git a/openbsc/include/openbsc/abis_rsl.h b/openbsc/include/openbsc/abis_rsl.h
index 49dd773..e9c60b5 100644
--- a/openbsc/include/openbsc/abis_rsl.h
+++ b/openbsc/include/openbsc/abis_rsl.h
@@ -154,6 +154,11 @@
 	RSL_MT_IPAC_DISCONNECT_NACK,
 };
 
+/* Siemens vendor-specific */
+enum abis_rsl_msgtype_siemens {
+	RSL_MT_SIEMENS_MRPCI		= 0x41,
+};
+
 /* Chapter 9.3 */
 enum abis_rsl_ie {
 	RSL_IE_CHAN_NR			= 0x01,
@@ -203,7 +208,7 @@
 	RSL_IE_CBCH_LOAD_INFO,
 	RSL_IE_SMSCB_CHAN_INDICATOR,
 	RSL_IE_GROUP_CALL_REF,
-	RSL_IE_CHAN_DESC,
+	RSL_IE_CHAN_DESC		= 0x30,
 	RSL_IE_NCH_DRX_INFO,
 	RSL_IE_CMD_INDICATOR,
 	RSL_IE_EMLPP_PRIO,
@@ -216,7 +221,10 @@
 	RSL_IE_RTD,
 	RSL_IE_TFO_STATUS,
 	RSL_IE_LLP_APDU,
+	/* Siemens vendor-specific */
+	RSL_IE_SIEMENS_MRPCI		= 0x40,
 
+	/* ip.access */
 	RSL_IE_IPAC_SRTP_CONFIG	= 0xe0,
 	RSL_IE_IPAC_PROXY_UDP	= 0xe1,
 	RSL_IE_IPAC_BSCMPL_TOUT	= 0xe2,
@@ -479,6 +487,30 @@
 int rsl_establish_request(struct gsm_lchan *lchan, u_int8_t link_id);
 int rsl_relase_request(struct gsm_lchan *lchan, u_int8_t link_id);
 
+/* Siemens vendor-specific RSL extensions */
+struct rsl_mrpci {
+	u_int8_t power_class:3,
+		 vgcs_capable:1,
+		 vbs_capable:1,
+		 gsm_phase:2;
+} __attribute__ ((packed));
+
+enum rsl_mrpci_pwrclass {
+	RSL_MRPCI_PWRC_1	= 0,
+	RSL_MRPCI_PWRC_2	= 1,
+	RSL_MRPCI_PWRC_3	= 2,
+	RSL_MRPCI_PWRC_4	= 3,
+	RSL_MRPCI_PWRC_5	= 4,
+};
+enum rsl_mrpci_phase {
+	RSL_MRPCI_PHASE_1	= 0,
+	/* reserved */
+	RSL_MRPCI_PHASE_2	= 2,
+	RSL_MRPCI_PHASE_2PLUS	= 3,
+};
+
+int rsl_siemens_mrpci(struct gsm_lchan *lchan, u_int8_t mrpci);
+
 /* ip.access specfic RSL extensions */
 int rsl_ipacc_bind(struct gsm_lchan *lchan);
 int rsl_ipacc_connect(struct gsm_lchan *lchan, u_int32_t ip,
diff --git a/openbsc/src/abis_rsl.c b/openbsc/src/abis_rsl.c
index 33da2ec..1ef0b84 100644
--- a/openbsc/src/abis_rsl.c
+++ b/openbsc/src/abis_rsl.c
@@ -105,6 +105,7 @@
 		[RSL_IE_RTD]			= { TLV_TYPE_TV },
 		[RSL_IE_TFO_STATUS]		= { TLV_TYPE_TV },
 		[RSL_IE_LLP_APDU]		= { TLV_TYPE_TLV },
+		[RSL_IE_SIEMENS_MRPCI]		= { TLV_TYPE_TV },
 		[RSL_IE_IPAC_PROXY_UDP]		= { TLV_TYPE_FIXED, 2 },
 		[RSL_IE_IPAC_BSCMPL_TOUT]	= { TLV_TYPE_TV },
 		[RSL_IE_IPAC_REMOTE_IP]		= { TLV_TYPE_FIXED, 4 },
@@ -743,6 +744,21 @@
 	return abis_rsl_sendmsg(msg);
 }
 
+/* Send Siemens specific MS RF Power Capability Indication */
+int rsl_siemens_mrpci(struct gsm_lchan *lchan, u_int8_t mrpci)
+{
+	struct msgb *msg = rsl_msgb_alloc();
+	struct abis_rsl_dchan_hdr *dh;
+
+	dh = (struct abis_rsl_dchan_hdr *) msgb_put(msg, sizeof(*dh));
+	init_dchan_hdr(dh, RSL_MT_SIEMENS_MRPCI);
+	dh->chan_nr = lchan2chan_nr(lchan);
+	msgb_tv_put(msg, RSL_IE_SIEMENS_MRPCI, mrpci);
+
+	return abis_rsl_sendmsg(msg);
+}
+
+
 /* Send "DATA REQUEST" message with given L3 Info payload */
 /* Chapter 8.3.1 */
 int rsl_data_request(struct msgb *msg, u_int8_t link_id)
