diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 2d0b81d..ed37428 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -949,6 +949,56 @@
 	/* negative test: ensure ERROR REPORT on unsupported types */
 }
 
+private function f_exp_err_rep(template RSL_Cause cause) runs on test_CT {
+	timer T := 5.0;
+	T.start;
+	alt {
+	[] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_ERROR_REPORT(cause))) {
+		setverdict(pass);
+		}
+	[] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_ERROR_REPORT(?))) {
+		setverdict(fail, "Wrong cause in RSL ERR REP");
+		}
+	[] RSL_CCHAN.receive {
+		repeat;
+		}
+	[] T.timeout {
+		setverdict(fail, "Timeout waiting for RSL ERR REP");
+		}
+	}
+}
+
+/* Provoke a protocol error (message too short) and match on ERROR REPORT */
+testcase TC_rsl_protocol_error() runs on test_CT {
+	f_init(testcasename());
+	var RSL_Message rsl := valueof(ts_RSL_BCCH_INFO(RSL_SYSTEM_INFO_1, ''O));
+	rsl.ies := omit;
+	RSL_CCHAN.send(ts_RSL_UD(rsl));
+
+	f_exp_err_rep(RSL_ERR_PROTO);
+}
+
+/* Provoke a mandatory IE error and match on ERROR REPORT */
+testcase TC_rsl_mand_ie_error() runs on test_CT {
+	f_init(testcasename());
+
+	var RSL_Message rsl := valueof(ts_RSL_BCCH_INFO(RSL_SYSTEM_INFO_1, ''O));
+	rsl.ies := { rsl.ies[0] };
+	RSL_CCHAN.send(ts_RSL_UD(rsl));
+
+	f_exp_err_rep(RSL_ERR_MAND_IE_ERROR);
+}
+
+/* Provoke an IE content error and match on ERROR REPORT */
+testcase TC_rsl_ie_content_error() runs on test_CT {
+	f_init(testcasename());
+	var RSL_Message rsl := valueof(ts_RSL_BCCH_INFO(RSL_SYSTEM_INFO_1, ''O));
+	rsl.ies[1].body.sysinfo_type := RSL_SYSTEM_INFO_5;
+	RSL_CCHAN.send(ts_RSL_UD(rsl));
+
+	f_exp_err_rep(RSL_ERR_IE_CONTENT);
+}
+
 
 /* TODO Areas:
 
@@ -979,8 +1029,6 @@
 ** type error
 ** sequence error
 ** IE duplicated?
-** IE missing
-** IE length error
 
 */
 
@@ -999,6 +1047,9 @@
 	execute( TC_paging_tmsi_80percent() );
 	execute( TC_paging_imsi_200percent() );
 	execute( TC_paging_tmsi_200percent() );
+	execute( TC_rsl_protocol_error() );
+	execute( TC_rsl_mand_ie_error() );
+	execute( TC_rsl_ie_content_error() );
 }
 
 
