diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp
index cb0c82c..63e11f2 100644
--- a/library/BSSGP_Emulation.ttcnpp
+++ b/library/BSSGP_Emulation.ttcnpp
@@ -681,7 +681,8 @@
 type record BssgpBvcConfig {
 	BssgpBvci bvci,
 	BssgpCellId cell_id,
-	BssgpDecodeDepth depth
+	BssgpDecodeDepth depth,
+	BssgpCreateCallback create_cb
 };
 type record of BssgpBvcConfig BssgpBvcConfigs;
 type enumerated BssgpDecodeDepth {
@@ -693,6 +694,14 @@
 	BSSGP_DECODE_DEPTH_L3
 #endif
 };
+/* call-back function type: Called for inbound BSSGP for unknown TLLIs; could create BSSGP_ClienT_CT */
+type function BssgpCreateCallback(BssgpBvci bvci, BssgpCellId cell_id, OCT4 tlli, BssgpDecoded dec) runs on BSSGP_BVC_CT;
+
+/* Default Create Callback function: Fail and terminate */
+function DefaultCreateCallback(BssgpBvci bvci, BssgpCellId cell_id, OCT4 tlli, BssgpDecoded dec) runs on BSSGP_BVC_CT {
+	setverdict(fail, "Couldn't find Component for TLLI ", tlli);
+	mtc.stop;
+}
 
 /*
 private function f_tbl_init() runs on BSSGP_BVC_CT {
@@ -792,8 +801,7 @@
 			return ClientTable[i].comp_ref;
 		}
 	}
-	setverdict(fail, "Couldn't find Component for TLLI ", tlli);
-	mtc.stop;
+	return null;
 }
 
 private function f_tbl_idx_by_comp(BSSGP_Client_CT comp_ref) runs on BSSGP_BVC_CT return integer {
@@ -987,7 +995,11 @@
 		var template OCT4 tlli := f_bssgp_get_tlli(udi.bssgp);
 		if (isvalue(tlli)) {
 			vc_conn := f_tbl_comp_by_tlli(valueof(tlli));
-			f_send_bssgp_dec(dec, vc_conn, BSSGP_SP);
+			if (vc_conn == null) {
+				g_cfg.create_cb.apply(g_cfg.bvci, g_cfg.cell_id, valueof(tlli), dec);
+			} else {
+				f_send_bssgp_dec(dec, vc_conn, BSSGP_SP);
+			}
 		} else {
 			log("No TLLI: Broadcasting ", dec);
 			/* broadcast this message to all components */
@@ -1006,7 +1018,11 @@
 		var template OCT4 tlli := f_bssgp_get_tlli(udi.bssgp);
 		if (isvalue(tlli)) {
 			vc_conn := f_tbl_comp_by_tlli(valueof(tlli));
-			f_send_bssgp_dec(dec, vc_conn, BSSGP_SP_SIG);
+			if (vc_conn == null) {
+				g_cfg.create_cb.apply(g_cfg.bvci, g_cfg.cell_id, valueof(tlli), dec);
+			} else {
+				f_send_bssgp_dec(dec, vc_conn, BSSGP_SP_SIG);
+			}
 		} else {
 			log("No TLLI: Broadcasting ", dec);
 			/* broadcast this message to all components */
