diff --git a/library/DIAMETER_Emulation.ttcn b/library/DIAMETER_Emulation.ttcn
index 69107d4..e5698fd 100644
--- a/library/DIAMETER_Emulation.ttcn
+++ b/library/DIAMETER_Emulation.ttcn
@@ -39,6 +39,7 @@
 import from IPL4asp_Types all;
 import from TCCConversion_Functions all;
 import from Native_Functions all;
+import from SCTP_Templates all;
 
 type hexstring IMSI;
 
@@ -308,24 +309,6 @@
 	}
 }
 
-private template (value) SctpTuple ts_SCTP(template (omit) integer ppid := omit) := {
-	sinfo_stream := omit,
-	sinfo_ppid := ppid,
-	remSocks := omit,
-	assocId := omit
-};
-
-private template PortEvent tr_SctpAssocChange := {
-	sctpEvent := {
-		sctpAssocChange := ?
-	}
-}
-private template PortEvent tr_SctpPeerAddrChange := {
-	sctpEvent := {
-		sctpPeerAddrChange := ?
-	}
-}
-
 private function f_diameter_xceive(template (value) PDU_DIAMETER tx,
 				   template PDU_DIAMETER rx_t := ?)
 runs on DIAMETER_Emulation_CT return PDU_DIAMETER {
@@ -341,7 +324,7 @@
 		mtc.stop;
 		}
 	[] DIAMETER.receive(tr_SctpAssocChange) { repeat; }
-	[] DIAMETER.receive(tr_SctpPeerAddrChange)  { repeat; }
+	[] DIAMETER.receive(tr_SctpPeerAddrChange) { repeat; }
 	[] T.timeout {
 		setverdict(fail, "Timeout waiting for ", rx_t);
 		mtc.stop;
@@ -360,10 +343,12 @@
 
 	map(self:DIAMETER, system:DIAMETER_CODEC_PT);
 	if (server_mode) {
-		res := DIAMETER_CodecPort_CtrlFunct.f_IPL4_listen(DIAMETER, p.local_ip, p.local_sctp_port, { sctp := valueof(ts_SCTP) });
+		res := DIAMETER_CodecPort_CtrlFunct.f_IPL4_listen(DIAMETER, p.local_ip, p.local_sctp_port,
+								  { sctp := valueof(ts_SctpTuple) });
 	} else {
 		res := DIAMETER_CodecPort_CtrlFunct.f_IPL4_connect(DIAMETER, p.remote_ip, p.remote_sctp_port,
-								p.local_ip, p.local_sctp_port, -1, { sctp := valueof(ts_SCTP) });
+								p.local_ip, p.local_sctp_port, -1,
+								{ sctp := valueof(ts_SctpTuple) });
 	}
 	if (not ispresent(res.connId)) {
 		setverdict(fail, "Could not connect DIAMETER socket, check your configuration");
@@ -459,7 +444,7 @@
 			}
 			}
 		[] DIAMETER.receive(tr_SctpAssocChange) { }
-		[] DIAMETER.receive(tr_SctpPeerAddrChange)  { }
+		[] DIAMETER.receive(tr_SctpPeerAddrChange) { }
 		[] DIAMETER_PROC.getcall(DIAMETEREM_register_imsi:{?,?}) -> param(imsi, vc_conn) {
 			f_create_expect(imsi, vc_conn);
 			DIAMETER_PROC.reply(DIAMETEREM_register_imsi:{imsi, vc_conn}) to vc_conn;
