diff --git a/library/MNCC_Emulation.ttcn b/library/MNCC_Emulation.ttcn
index 49b1249..66294a4 100644
--- a/library/MNCC_Emulation.ttcn
+++ b/library/MNCC_Emulation.ttcn
@@ -287,6 +287,7 @@
 		var MNCC_PDU mncc;
 		var MNCC_ConnHdlr vc_hdlr;
 		var charstring dest_nr;
+		var uint32_t mncc_call_id;
 
 		alt {
 		/* MNCC -> Client: UNIT-DATA (connectionless SCCP) from a BSC */
@@ -360,6 +361,11 @@
 			MNCC_PROC.reply(MNCCEM_register:{dest_nr, vc_hdlr}) to vc_hdlr;
 			}
 
+		[] MNCC_PROC.getcall(MNCCEM_change_connhdlr:{?,?}) -> param(mncc_call_id, vc_hdlr) {
+			f_call_table_del(mncc_call_id);
+			f_call_table_add(vc_hdlr, mncc_call_id);
+			MNCC_PROC.reply(MNCCEM_change_connhdlr:{mncc_call_id, vc_hdlr}) to vc_hdlr;
+			}
 		}
 	}
 }
@@ -384,9 +390,10 @@
 
 /* procedure based port to register for incoming calls */
 signature MNCCEM_register(in charstring dest_nr, in MNCC_ConnHdlr hdlr);
+signature MNCCEM_change_connhdlr(in uint32_t mncc_call_id, in MNCC_ConnHdlr hdlr);
 
 type port MNCCEM_PROC_PT procedure {
-	inout MNCCEM_register;
+	inout MNCCEM_register, MNCCEM_change_connhdlr;
 } with { extension "internal" };
 
 /* CreateCallback that can be used as create_cb and will use the expectation table */
@@ -445,6 +452,13 @@
 	}
 }
 
+/* Move MNCC handling for a given call id to another MNCC_ConnHdlr test component. */
+function f_mncc_change_connhdlr(uint32_t mncc_call_id) runs on MNCC_ConnHdlr {
+	MNCC_PROC.call(MNCCEM_change_connhdlr:{mncc_call_id, self}) {
+		[] MNCC_PROC.getreply(MNCCEM_change_connhdlr:{?,?}) {};
+	}
+}
+
 function DummyUnitdataCallback(MNCC_PDU mncc)
 runs on MNCC_Emulation_CT return template MNCC_PDU {
 	log("Ignoring MNCC ", mncc);
