diff --git a/include/osmocom/rspro/ErrorCode.h b/include/osmocom/rspro/ErrorCode.h
new file mode 100644
index 0000000..1a8a62e
--- /dev/null
+++ b/include/osmocom/rspro/ErrorCode.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ErrorCode_H_
+#define	_ErrorCode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ErrorCode {
+	ErrorCode_unknownClientConnected	= 1,
+	ErrorCode_unexpectedDisconnect	= 2,
+	ErrorCode_unexpectedProtocolVersion	= 3
+	/*
+	 * Enumeration is extensible
+	 */
+} e_ErrorCode;
+
+/* ErrorCode */
+typedef long	 ErrorCode_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ErrorCode;
+asn_struct_free_f ErrorCode_free;
+asn_struct_print_f ErrorCode_print;
+asn_constr_check_f ErrorCode_constraint;
+ber_type_decoder_f ErrorCode_decode_ber;
+der_type_encoder_f ErrorCode_encode_der;
+xer_type_decoder_f ErrorCode_decode_xer;
+xer_type_encoder_f ErrorCode_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ErrorCode_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ErrorInd.h b/include/osmocom/rspro/ErrorInd.h
new file mode 100644
index 0000000..48bddf7
--- /dev/null
+++ b/include/osmocom/rspro/ErrorInd.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ErrorInd_H_
+#define	_ErrorInd_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ComponentType.h>
+#include "ErrorSeverity.h"
+#include "ErrorCode.h"
+#include "ErrorString.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct BankSlot;
+struct ClientSlot;
+
+/* ErrorInd */
+typedef struct ErrorInd {
+	ComponentType_t	 sender;
+	ErrorSeverity_t	 severity;
+	ErrorCode_t	 code;
+	struct BankSlot	*bankSlot	/* OPTIONAL */;
+	struct ClientSlot	*clientSlot	/* OPTIONAL */;
+	ErrorString_t	*errorString	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ErrorInd_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ErrorInd;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Referred external types */
+#include <osmocom/rspro/BankSlot.h>
+#include <osmocom/rspro/ClientSlot.h>
+
+#endif	/* _ErrorInd_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ErrorSeverity.h b/include/osmocom/rspro/ErrorSeverity.h
new file mode 100644
index 0000000..90fa93f
--- /dev/null
+++ b/include/osmocom/rspro/ErrorSeverity.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ErrorSeverity_H_
+#define	_ErrorSeverity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ErrorSeverity {
+	ErrorSeverity_minor	= 1,
+	ErrorSeverity_major	= 2,
+	ErrorSeverity_fatal	= 3
+	/*
+	 * Enumeration is extensible
+	 */
+} e_ErrorSeverity;
+
+/* ErrorSeverity */
+typedef long	 ErrorSeverity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ErrorSeverity;
+asn_struct_free_f ErrorSeverity_free;
+asn_struct_print_f ErrorSeverity_print;
+asn_constr_check_f ErrorSeverity_constraint;
+ber_type_decoder_f ErrorSeverity_decode_ber;
+der_type_encoder_f ErrorSeverity_encode_der;
+xer_type_decoder_f ErrorSeverity_decode_xer;
+xer_type_encoder_f ErrorSeverity_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ErrorSeverity_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ErrorString.h b/include/osmocom/rspro/ErrorString.h
new file mode 100644
index 0000000..00d3efe
--- /dev/null
+++ b/include/osmocom/rspro/ErrorString.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ErrorString_H_
+#define	_ErrorString_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <IA5String.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ErrorString */
+typedef IA5String_t	 ErrorString_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ErrorString;
+asn_struct_free_f ErrorString_free;
+asn_struct_print_f ErrorString_print;
+asn_constr_check_f ErrorString_constraint;
+ber_type_decoder_f ErrorString_decode_ber;
+der_type_encoder_f ErrorString_encode_der;
+xer_type_decoder_f ErrorString_decode_xer;
+xer_type_encoder_f ErrorString_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ErrorString_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/Makefile.am b/include/osmocom/rspro/Makefile.am
index f189c0a..41df9dc 100644
--- a/include/osmocom/rspro/Makefile.am
+++ b/include/osmocom/rspro/Makefile.am
@@ -17,6 +17,10 @@
 	ConnectClientRes.h \
 	CreateMappingReq.h \
 	CreateMappingRes.h \
+	ErrorCode.h \
+	ErrorInd.h \
+	ErrorSeverity.h \
+	ErrorString.h \
 	IpAddress.h \
 	IpPort.h \
 	Ipv4Address.h \
diff --git a/include/osmocom/rspro/RsproPDUchoice.h b/include/osmocom/rspro/RsproPDUchoice.h
index 07d387e..98a8ca1 100644
--- a/include/osmocom/rspro/RsproPDUchoice.h
+++ b/include/osmocom/rspro/RsproPDUchoice.h
@@ -21,6 +21,7 @@
 #include <osmocom/rspro/RemoveMappingRes.h>
 #include <osmocom/rspro/ConfigClientReq.h>
 #include <osmocom/rspro/ConfigClientRes.h>
+#include "ErrorInd.h"
 #include <osmocom/rspro/SetAtrReq.h>
 #include <osmocom/rspro/SetAtrRes.h>
 #include <osmocom/rspro/TpduModemToCard.h>
@@ -46,6 +47,7 @@
 	RsproPDUchoice_PR_removeMappingRes,
 	RsproPDUchoice_PR_configClientReq,
 	RsproPDUchoice_PR_configClientRes,
+	RsproPDUchoice_PR_errorInd,
 	RsproPDUchoice_PR_setAtrReq,
 	RsproPDUchoice_PR_setAtrRes,
 	RsproPDUchoice_PR_tpduModemToCard,
@@ -70,6 +72,7 @@
 		RemoveMappingRes_t	 removeMappingRes;
 		ConfigClientReq_t	 configClientReq;
 		ConfigClientRes_t	 configClientRes;
+		ErrorInd_t	 errorInd;
 		SetAtrReq_t	 setAtrReq;
 		SetAtrRes_t	 setAtrRes;
 		TpduModemToCard_t	 tpduModemToCard;
