diff --git a/hnodeb/HNBGW_ConnectionHandler.ttcn b/hnodeb/HNBGW_ConnectionHandler.ttcn
index a3ff32f..ac280b0 100644
--- a/hnodeb/HNBGW_ConnectionHandler.ttcn
+++ b/hnodeb/HNBGW_ConnectionHandler.ttcn
@@ -248,13 +248,14 @@
 }
 
 /* Initialize and start the RTP emulation component for a ConnHdlr */
-function f_HNBGW_rtpem_activate(inout octetstring payload,
-				 HostName remote_host,
-				 PortNumber remote_port,
-				 RtpemConfig cfg := c_RtpemDefaultCfg,
-				 RtpemMode mode := RTPEM_MODE_BIDIR)
+function f_HNBGW_rtpem_activate(inout octetstring payload)
 runs on HNBGW_ConnHdlr {
-	/* Step 0: initialize, connect and start the emulation component */
+	/* Initialize, connect and start the emulation component */
+	var RtpemConfig cfg := c_RtpemDefaultCfg;
+	cfg.iuup_mode := true;
+	cfg.iuup_tx_init := false;
+	cfg.tx_payload_type := 96;
+
 	vc_RTPEM := RTP_Emulation_CT.create(testcasename() & "-RTPEM") alive;
 	map(vc_RTPEM:RTP, system:RTP);
 	map(vc_RTPEM:RTCP, system:RTCP);
@@ -274,11 +275,15 @@
 	/* Bind the RTP emulation to the configured address */
 	f_rtpem_bind(RTPEM_CTRL, g_pars.hnbgw_addr, g_pars.hnbgw_rtp_port);
 
-	/* Connect to the IUT's address/port parsed from CRCX ACK */
-	f_rtpem_connect(RTPEM_CTRL, remote_host, remote_port);
-
 	/* Set the given RTP emulation mode */
-	f_rtpem_mode(RTPEM_CTRL, mode);
+	f_rtpem_mode(RTPEM_CTRL, RTPEM_MODE_RXONLY);
+}
+
+function f_HNBGW_rtpem_connect(HostName remote_host, PortNumber remote_port)
+runs on HNBGW_ConnHdlr {
+	f_rtpem_connect(RTPEM_CTRL, remote_host, remote_port);
+	/* Set the given RTP emulation mode */
+	f_rtpem_mode(RTPEM_CTRL, RTPEM_MODE_BIDIR);
 }
 
 }
