diff --git a/library/BSSGP_Emulation.ttcn b/library/BSSGP_Emulation.ttcn
index 321c344..38666b8 100644
--- a/library/BSSGP_Emulation.ttcn
+++ b/library/BSSGP_Emulation.ttcn
@@ -441,15 +441,15 @@
 
 	[] BSSGP_PROC.getcall(BSSGP_register_client:{?,?,?}) -> param(imsi, tlli, cell_id) sender vc_conn {
 		f_tbl_client_add(imsi, tlli, cell_id, vc_conn);
-		BSSGP_PROC.reply(BSSGP_register_client:{imsi, tlli, cell_id});
+		BSSGP_PROC.reply(BSSGP_register_client:{imsi, tlli, cell_id}) to vc_conn;
 		}
 	[] BSSGP_PROC.getcall(BSSGP_unregister_client:{?}) -> param(imsi) sender vc_conn {
 		f_tbl_client_del(imsi, vc_conn);
-		BSSGP_PROC.reply(BSSGP_unregister_client:{imsi});
+		BSSGP_PROC.reply(BSSGP_unregister_client:{imsi}) to vc_conn;
 		}
 	[] BSSGP_PROC.getcall(BSSGP_llgmm_assign:{?,?}) -> param(tlli_old, tlli) sender vc_conn {
 		f_tbl_client_llgmm_assign(tlli_old, tlli, vc_conn);
-		BSSGP_PROC.reply(BSSGP_llgmm_assign:{tlli_old, tlli});
+		BSSGP_PROC.reply(BSSGP_llgmm_assign:{tlli_old, tlli}) to vc_conn;
 		}
 
 }
diff --git a/library/BSSMAP_Emulation.ttcn b/library/BSSMAP_Emulation.ttcn
index 95b39f3..e65c550 100644
--- a/library/BSSMAP_Emulation.ttcn
+++ b/library/BSSMAP_Emulation.ttcn
@@ -713,12 +713,12 @@
 
 		[] PROC.getcall(BSSMAPEM_register:{?,?}) -> param(l3_info, vc_hdlr) {
 			f_create_expect(l3_info, vc_hdlr);
-			PROC.reply(BSSMAPEM_register:{l3_info, vc_hdlr});
+			PROC.reply(BSSMAPEM_register:{l3_info, vc_hdlr}) to vc_hdlr;
 			}
 
 		[] PROC.getcall(BSSMAPEM_register_imsi:{?,?,?}) -> param(imsi, tmsi, vc_hdlr) {
 			f_create_imsi(imsi, tmsi, vc_hdlr);
-			PROC.reply(BSSMAPEM_register_imsi:{imsi, tmsi, vc_hdlr});
+			PROC.reply(BSSMAPEM_register_imsi:{imsi, tmsi, vc_hdlr}) to vc_hdlr;
 			}
 
 
diff --git a/library/GSUP_Emulation.ttcn b/library/GSUP_Emulation.ttcn
index 3990b73..7cf1656 100644
--- a/library/GSUP_Emulation.ttcn
+++ b/library/GSUP_Emulation.ttcn
@@ -222,7 +222,7 @@
 		/* Client -> us: procedure call to register expect */
 		[] GSUP_PROC.getcall(GSUPEM_register:{?,?}) -> param(imsi, vc_hdlr) {
 			f_create_expect(imsi, vc_hdlr);
-			GSUP_PROC.reply(GSUPEM_register:{imsi, vc_hdlr});
+			GSUP_PROC.reply(GSUPEM_register:{imsi, vc_hdlr}) to vc_hdlr;
 			}
 
 		}
diff --git a/library/GTP_Emulation.ttcn b/library/GTP_Emulation.ttcn
index e5e5e36..534fdef 100644
--- a/library/GTP_Emulation.ttcn
+++ b/library/GTP_Emulation.ttcn
@@ -206,12 +206,12 @@
 
 	[] CLIENT_PROC.getcall(GTPEM_register_imsi:{?}) -> param(imsi) sender vc_conn {
 		f_imsi_tbl_add(imsi, vc_conn);
-		CLIENT_PROC.reply(GTPEM_register_imsi:{imsi});
+		CLIENT_PROC.reply(GTPEM_register_imsi:{imsi}) to vc_conn;
 		}
 
 	[] CLIENT_PROC.getcall(GTPEM_register_teid:{?}) -> param(teid) sender vc_conn {
 		f_tid_tbl_add(teid, vc_conn);
-		CLIENT_PROC.reply(GTPEM_register_teid:{teid});
+		CLIENT_PROC.reply(GTPEM_register_teid:{teid}) to vc_conn;
 		}
 
 	}
diff --git a/library/MGCP_Emulation.ttcn b/library/MGCP_Emulation.ttcn
index e2f79b3..b02dc06 100644
--- a/library/MGCP_Emulation.ttcn
+++ b/library/MGCP_Emulation.ttcn
@@ -307,11 +307,11 @@
 			}
 		[] MGCP_PROC.getcall(MGCPEM_register:{?,?}) -> param(crit, vc_conn) {
 			f_create_expect(crit, vc_conn);
-			MGCP_PROC.reply(MGCPEM_register:{crit, vc_conn});
+			MGCP_PROC.reply(MGCPEM_register:{crit, vc_conn}) to vc_conn;
 			}
 		[] MGCP_PROC.getcall(MGCPEM_delete_ep:{?,?}) -> param(ep, vc_conn) {
 			f_ep_table_del(vc_conn, ep);
-			MGCP_PROC.reply(MGCPEM_delete_ep:{ep, vc_conn});
+			MGCP_PROC.reply(MGCPEM_delete_ep:{ep, vc_conn}) to vc_conn;
 			}
 		}
 
diff --git a/library/MNCC_Emulation.ttcn b/library/MNCC_Emulation.ttcn
index 59e3e77..d9b7c79 100644
--- a/library/MNCC_Emulation.ttcn
+++ b/library/MNCC_Emulation.ttcn
@@ -351,7 +351,7 @@
 		/* Client -> us: procedure call to register expect */
 		[] MNCC_PROC.getcall(MNCCEM_register:{?,?}) -> param(dest_nr, vc_hdlr) {
 			f_create_expect(dest_nr, vc_hdlr);
-			MNCC_PROC.reply(MNCCEM_register:{dest_nr, vc_hdlr});
+			MNCC_PROC.reply(MNCCEM_register:{dest_nr, vc_hdlr}) to vc_hdlr;
 			}
 
 		}
diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn
index 3634373..119a9be 100644
--- a/library/RSL_Emulation.ttcn
+++ b/library/RSL_Emulation.ttcn
@@ -451,30 +451,30 @@
 		/* explicit registration, e.g. in (non-immediate) assignment case */
 		[] RSL_PROC.getcall(RSLEM_register:{?,?,?}) -> param(trx_nr, chan_nr, vc_conn) {
 			f_cid_create_cnr(trx_nr, chan_nr, vc_conn);
-			RSL_PROC.reply(RSLEM_register:{trx_nr, chan_nr, vc_conn});
+			RSL_PROC.reply(RSLEM_register:{trx_nr, chan_nr, vc_conn}) to vc_conn;
 			}
 
 		[] RSL_PROC.getcall(RSLEM_unregister:{?,?,?}) -> param(trx_nr, chan_nr, vc_conn) {
 			cid := f_cid_by_chan_nr(trx_nr, chan_nr);
 			f_cid_clear(cid);
-			RSL_PROC.reply(RSLEM_unregister:{trx_nr, chan_nr, vc_conn});
+			RSL_PROC.reply(RSLEM_unregister:{trx_nr, chan_nr, vc_conn}) to vc_conn;
 			}
 
-		[] RSL_PROC.getcall(RSLEM_suspend:{true}) {
+		[] RSL_PROC.getcall(RSLEM_suspend:{true}) -> sender vc_conn {
 			log("Suspending DChan");
 			dchan_suspended := true;
-			RSL_PROC.reply(RSLEM_suspend:{true});
+			RSL_PROC.reply(RSLEM_suspend:{true}) to vc_conn;
 			}
 
-		[] RSL_PROC.getcall(RSLEM_suspend:{false}) {
+		[] RSL_PROC.getcall(RSLEM_suspend:{false}) -> sender vc_conn {
 			log("Resuming DChan");
 			dchan_suspended := false;
-			RSL_PROC.reply(RSLEM_suspend:{false});
+			RSL_PROC.reply(RSLEM_suspend:{false}) to vc_conn;
 			}
 
-		[] RSL_PROC.getcall(RSLEM_get_last_act:{?,?,?}) -> param(trx_nr, chan_nr) {
+		[] RSL_PROC.getcall(RSLEM_get_last_act:{?,?,?}) -> param(trx_nr, chan_nr) sender vc_conn {
 			var RSL_Message last_chan_act := f_lookup_last_act(trx_nr, chan_nr);
-			RSL_PROC.reply(RSLEM_get_last_act:{trx_nr, chan_nr, last_chan_act});
+			RSL_PROC.reply(RSLEM_get_last_act:{trx_nr, chan_nr, last_chan_act}) to vc_conn;
 			}
 		}
 	}
diff --git a/library/SMPP_Emulation.ttcn b/library/SMPP_Emulation.ttcn
index c14340c..27876dc 100644
--- a/library/SMPP_Emulation.ttcn
+++ b/library/SMPP_Emulation.ttcn
@@ -314,7 +314,7 @@
 
 		[] SMPP_PROC.getcall(SMPPEM_register:{?,?}) -> param(dest_addr, vc_conn) {
 			f_create_expect(dest_addr, vc_conn);
-			SMPP_PROC.reply(SMPPEM_register:{dest_addr, vc_conn});
+			SMPP_PROC.reply(SMPPEM_register:{dest_addr, vc_conn}) to vc_conn;
 			}
 		}
 	}
