flag new subscriber structs in memory and send a signal
diff --git a/openbsc/src/gsm_04_08.c b/openbsc/src/gsm_04_08.c
index ec7b4d3..5c4465e 100644
--- a/openbsc/src/gsm_04_08.c
+++ b/openbsc/src/gsm_04_08.c
@@ -1151,8 +1151,12 @@
 
 	switch (mi_type) {
 	case GSM_MI_TYPE_IMSI:
-		if (!lchan->subscr)
+		if (!lchan->subscr) {
 			lchan->subscr = db_create_subscriber(net, mi_string);
+			if (lchan->subscr->flags & GSM_SUBSCRIBER_FIRST_CONTACT) {
+				dispatch_signal(SS_SUBSCR, S_SUBSCR_FIRST_CONTACT, &lchan->subscr);
+			}
+		}
 		if (lchan->loc_operation)
 			lchan->loc_operation->waiting_for_imsi = 0;
 		break;
@@ -1245,6 +1249,9 @@
 
 		/* look up subscriber based on IMSI */
 		subscr = db_create_subscriber(bts->network, mi_string);
+		if (subscr->flags & GSM_SUBSCRIBER_FIRST_CONTACT) {
+			dispatch_signal(SS_SUBSCR, S_SUBSCR_FIRST_CONTACT, &subscr);
+		}
 		break;
 	case GSM_MI_TYPE_TMSI:
 		DEBUGPC(DMM, "\n");