diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn
index ccd43e6..b04a13a 100644
--- a/library/RSL_Types.ttcn
+++ b/library/RSL_Types.ttcn
@@ -2092,6 +2092,39 @@
 
 	/* Abis/IP specific messages */
 
+	private function f_ts_RSL_IPA_CRCX_IEs(template (value) RslChannelNr chan_nr,
+					       template (omit) OCT4 remote_ip,
+					       template (omit) uint16_t remote_port)
+	return RSL_IE_List {
+		var RSL_IE_List ies;
+
+		/* Channel Number is a mandatory IE */
+		ies := {
+			valueof(RSL_IE:{
+				iei := RSL_IE_CHAN_NR,
+				body := { chan_nr := chan_nr }
+			})
+		};
+		/* Remote IP / Port are optional IEs */
+		if (not istemplatekind(remote_ip, "omit")) {
+			ies := ies & {
+				valueof(RSL_IE:{
+					iei := RSL_IE_IPAC_REMOTE_IP,
+					body := { ipa_remote_ip := remote_ip }
+				})
+			};
+		}
+		if (not istemplatekind(remote_port, "omit")) {
+			ies := ies & {
+				valueof(RSL_IE:{
+					iei := RSL_IE_IPAC_REMOTE_PORT,
+					body := { ipa_remote_port := remote_port }
+				})
+			};
+		}
+
+		return ies;
+	}
 	template RSL_Message tr_RSL_IPA_CRCX(template RslChannelNr chan_nr) := {
 		msg_disc := tr_RSL_MsgDisc(RSL_MDISC_IPACCESS, false),
 		msg_type := RSL_MT_IPAC_CRCX,
@@ -2102,15 +2135,11 @@
 	}
 	template (value) RSL_Message
 	ts_RSL_IPA_CRCX(template (value) RslChannelNr chan_nr,
-			template (value) OCT4 remote_ip := '7F000001'O,
-			template (value) uint16_t remote_port := 6766) := {
+			template (omit) OCT4 remote_ip := omit,
+			template (omit) uint16_t remote_port := omit) := {
 		msg_disc := ts_RSL_MsgDisc(RSL_MDISC_IPACCESS, false),
 		msg_type := RSL_MT_IPAC_CRCX,
-		ies := {
-			t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := chan_nr}),
-			t_RSL_IE(RSL_IE_IPAC_REMOTE_IP, RSL_IE_Body:{ipa_remote_ip := remote_ip}),
-			t_RSL_IE(RSL_IE_IPAC_REMOTE_PORT, RSL_IE_Body:{ipa_remote_port := remote_port})
-		}
+		ies := f_ts_RSL_IPA_CRCX_IEs(chan_nr, remote_ip, remote_port)
 	}
 
 
