diff --git a/pcap-client/OPCAP_CLIENT_Tests.ttcn b/pcap-client/OPCAP_CLIENT_Tests.ttcn
index 5f59caf..e9fe406 100644
--- a/pcap-client/OPCAP_CLIENT_Tests.ttcn
+++ b/pcap-client/OPCAP_CLIENT_Tests.ttcn
@@ -34,7 +34,7 @@
 
 	/* port to generate IP traffic that may or may not be captured */
 	port IPL4asp_PT IP;
-	var integer g_traffic_conn_id[2];
+	var integer g_traffic_conn_id;
 };
 
 private altstep as_Tguard() runs on test_CT {
@@ -70,24 +70,12 @@
 	/* 0 -> 1 */
 	res := f_IPL4_connect(IP, mp_traffic_b.ip, mp_traffic_b.udp_port,
 			      mp_traffic_a.ip, mp_traffic_a.udp_port, -1, { udp:={} });
-	g_traffic_conn_id[0] := res.connId;
-
-	/* 1 -> 0 */
-	res := f_IPL4_connect(IP, mp_traffic_a.ip, mp_traffic_a.udp_port,
-			      mp_traffic_b.ip, mp_traffic_b.udp_port, -1, { udp:={} });
-	g_traffic_conn_id[1] := res.connId;
+	g_traffic_conn_id := res.connId;
 }
 
 /* generate user traffic from A -> B */
 function f_trafic_pkt_ab(octetstring payload) runs on test_CT {
-	IP.send(ASP_Send:{g_traffic_conn_id[0], omit, payload})
-	IP.receive(ASP_RecvFrom:{g_traffic_conn_id[1], ?, ?, ?, ?, { udp:={} }, ?, payload});
-}
-
-/* generate user traffic from B -> A */
-function f_trafic_pkt_ba(octetstring payload) runs on test_CT {
-	IP.send(ASP_Send:{g_traffic_conn_id[1], omit, payload})
-	IP.receive(ASP_RecvFrom:{g_traffic_conn_id[0], ?, ?, ?, ?, { udp:={} }, ?, payload});
+	IP.send(ASP_Send:{g_traffic_conn_id, omit, payload})
 }
 
 /* expect a specified UDP payload on the OPCAP connection 'idx' */
