diff --git a/include/osmocom/gsm/gsm0411_smc.h b/include/osmocom/gsm/gsm0411_smc.h
index 2140db4..239ee13 100644
--- a/include/osmocom/gsm/gsm0411_smc.h
+++ b/include/osmocom/gsm/gsm0411_smc.h
@@ -24,6 +24,7 @@
 #define GSM411_MNSMS_REL_REQ		0x107
 
 struct gsm411_smc_inst {
+	uint64_t id;		/* a unique id for the SMS */
 	int network;		/* is this a MO (0) or MT (1) transfer */
 	int (*mn_recv) (struct gsm411_smc_inst *inst, int msg_type,
 			struct msgb *msg);
@@ -43,7 +44,7 @@
 extern const struct value_string gsm411_cp_cause_strs[];
 
 /* init a new instance */
-void gsm411_smc_init(struct gsm411_smc_inst *inst, int network,
+void gsm411_smc_init(struct gsm411_smc_inst *inst, uint64_t id, int network,
 	int (*mn_recv) (struct gsm411_smc_inst *inst, int msg_type,
 			struct msgb *msg),
 	int (*mm_send) (struct gsm411_smc_inst *inst, int msg_type,
diff --git a/src/gsm/gsm0411_smc.c b/src/gsm/gsm0411_smc.c
index 4152ef1..57431ef 100644
--- a/src/gsm/gsm0411_smc.c
+++ b/src/gsm/gsm0411_smc.c
@@ -50,6 +50,7 @@
  */
 
 #include <string.h>
+#include <inttypes.h>
 #include <errno.h>
 #include <osmocom/core/msgb.h>
 #include <osmocom/core/logging.h>
@@ -63,14 +64,17 @@
 
 #define MAX_SMS_RETRY 2
 
+#define SMC_LOG_STR "SMC(%" PRIu64 ") "
+
 /* init a new instance */
-void gsm411_smc_init(struct gsm411_smc_inst *inst, int network,
+void gsm411_smc_init(struct gsm411_smc_inst *inst, uint64_t id, int network,
 	int (*mn_recv) (struct gsm411_smc_inst *inst, int msg_type,
 			struct msgb *msg),
 	int (*mm_send) (struct gsm411_smc_inst *inst, int msg_type,
 			struct msgb *msg, int cp_msg_type))
 {
 	memset(inst, 0, sizeof(*inst));
+	inst->id = id;
 	inst->network = network;
 	inst->cp_max_retr = MAX_SMS_RETRY;
 	inst->cp_tc1 = GSM411_TMR_TC1A_SEC / (inst->cp_max_retr + 1);
@@ -78,19 +82,22 @@
 	inst->mn_recv = mn_recv;
 	inst->mm_send = mm_send;
 
-	LOGP(DLSMS, LOGL_INFO, "New SMC instance created\n");
+	LOGP(DLSMS, LOGL_INFO,
+		SMC_LOG_STR "instance created\n", inst->id);
 }
 
 /* clear instance */
 void gsm411_smc_clear(struct gsm411_smc_inst *inst)
 {
-	LOGP(DLSMS, LOGL_INFO, "Clear SMC instance\n");
+	LOGP(DLSMS, LOGL_INFO,
+		SMC_LOG_STR "clearing instance\n", inst->id);
 
 	osmo_timer_del(&inst->cp_timer);
 
 	/* free stored msg */
 	if (inst->cp_msg) {
-		LOGP(DLSMS, LOGL_INFO, "Dropping pending message\n");
+		LOGP(DLSMS, LOGL_INFO,
+			SMC_LOG_STR "dropping pending message\n", inst->id);
 		msgb_free(inst->cp_msg);
 		inst->cp_msg = NULL;
 	}
@@ -120,7 +127,8 @@
 static void new_cp_state(struct gsm411_smc_inst *inst,
 	enum gsm411_cp_state state)
 {
-	LOGP(DLSMS, LOGL_INFO, "New CP state %s -> %s\n",
+	LOGP(DLSMS, LOGL_INFO,
+		SMC_LOG_STR "new CP state %s -> %s\n", inst->id,
 		smc_state_names[inst->cp_state], smc_state_names[state]);
 	inst->cp_state = state;
 }
@@ -130,7 +138,8 @@
 	struct msgb *nmsg = gsm411_msgb_alloc();
 	uint8_t *causep;
 
-	LOGP(DLSMS, LOGL_NOTICE, "TX CP-ERROR, cause %d (%s)\n", cause,
+	LOGP(DLSMS, LOGL_NOTICE,
+		SMC_LOG_STR "TX CP-ERROR, cause %d (%s)\n", inst->id, cause,
 		get_value_string(gsm411_cp_cause_strs, cause));
 
 	causep = msgb_put(nmsg, 1);
@@ -146,8 +155,10 @@
 	struct msgb *nmsg;
 
 	if (inst->cp_msg) {
-		LOGP(DLSMS, LOGL_FATAL, "EST REQ, but we already have an "
-			"cp_msg. This should never happen, please fix!\n");
+		LOGP(DLSMS, LOGL_FATAL,
+			SMC_LOG_STR "EST REQ, but we already have an "
+			"cp_msg. This should never happen, please fix!\n",
+			inst->id);
 		msgb_free(inst->cp_msg);
 	}
 
@@ -164,7 +175,8 @@
 {
 	struct msgb *nmsg;
 
-	LOGP(DLSMS, LOGL_INFO, "Send CP data\n");
+	LOGP(DLSMS, LOGL_INFO,
+		SMC_LOG_STR "send CP data\n", inst->id);
 	/* reset retry counter */
 	if (inst->cp_state != GSM411_CPS_WAIT_CP_ACK)
 		inst->cp_retx = 0;
@@ -187,8 +199,10 @@
 static int gsm411_mmsms_est_cnf(struct gsm411_smc_inst *inst, struct msgb *msg)
 {
 	if (!inst->cp_msg) {
-		LOGP(DLSMS, LOGL_FATAL, "EST CNF, but we have no cp_msg. This "
-			"should never happen, please fix!\n");
+		LOGP(DLSMS, LOGL_FATAL,
+			SMC_LOG_STR "EST CNF, but we have no cp_msg. This "
+			"should never happen, please fix!\n",
+			inst->id);
 		return -EINVAL;
 	}
 
@@ -203,7 +217,9 @@
 
 	if (inst->cp_retx == inst->cp_max_retr) {
 
-		LOGP(DLSMS, LOGL_INFO, "TC1* timeout, no more retries.\n");
+		LOGP(DLSMS, LOGL_INFO,
+			SMC_LOG_STR "TC1* timeout, no more retries.\n",
+			inst->id);
 		/* 5.3.2.1: enter idle state */
 		new_cp_state(inst, GSM411_CPS_IDLE);
 		/* indicate error */
@@ -221,7 +237,8 @@
 		return;
 	}
 
-	LOGP(DLSMS, LOGL_INFO, "TC1* timeout, retrying...\n");
+	LOGP(DLSMS, LOGL_INFO,
+		SMC_LOG_STR "TC1* timeout, retrying...\n", inst->id);
 	inst->cp_retx++;
 	gsm411_mmsms_est_cnf(inst, NULL);
 }
@@ -234,7 +251,8 @@
 		inst->cp_msg = NULL;
 	}
 
-	LOGP(DLSMS, LOGL_INFO, "Received CP-ACK\n");
+	LOGP(DLSMS, LOGL_INFO,
+		SMC_LOG_STR "received CP-ACK\n", inst->id);
 	/* 5.3.2.1 enter MM Connection established */
 	new_cp_state(inst, GSM411_CPS_MM_ESTABLISHED);
 	/* 5.3.2.1: Reset Timer TC1* */
@@ -244,7 +262,9 @@
 	if (inst->cp_rel) {
 		struct msgb *nmsg;
 
-		LOGP(DLSMS, LOGL_INFO, "We have pending release.\n");
+		LOGP(DLSMS, LOGL_INFO,
+			SMC_LOG_STR "we have pending release.\n",
+			inst->id);
 		new_cp_state(inst, GSM411_CPS_IDLE);
 		/* release MM connection */
 		nmsg = gsm411_msgb_alloc();
@@ -259,7 +279,8 @@
 	struct msgb *nmsg;
 	int mt = GSM411_MNSMS_DATA_IND;
 
-	LOGP(DLSMS, LOGL_INFO, "Received CP-DATA\n");
+	LOGP(DLSMS, LOGL_INFO,
+		SMC_LOG_STR "received CP-DATA\n", inst->id);
 	/* 5.3.1 enter MM Connection established (if idle) */
 	if (inst->cp_state == GSM411_CPS_IDLE) {
 		new_cp_state(inst, GSM411_CPS_MM_ESTABLISHED);
@@ -280,8 +301,10 @@
 static int gsm411_mnsms_data_req(struct gsm411_smc_inst *inst, struct msgb *msg)
 {
 	if (inst->cp_msg) {
-		LOGP(DLSMS, LOGL_FATAL, "DATA REQ, but we already have an "
-			"cp_msg. This should never happen, please fix!\n");
+		LOGP(DLSMS, LOGL_FATAL,
+			SMC_LOG_STR "DATA REQ, but we already have an "
+			"cp_msg. This should never happen, please fix!\n",
+			inst->id);
 		msgb_free(inst->cp_msg);
 	}
 
@@ -304,8 +327,8 @@
 	/* store release, until established or released */
 	if (inst->cp_state != GSM411_CPS_MM_ESTABLISHED) {
 		LOGP(DLSMS, LOGL_NOTICE,
-			"Cannot release yet current state: %s\n",
-			smc_state_names[inst->cp_state]);
+			SMC_LOG_STR "cannot release yet current state: %s\n",
+			inst->id, smc_state_names[inst->cp_state]);
 		inst->cp_rel = 1;
 		return 0;
 	}
@@ -332,7 +355,8 @@
 		inst->cp_msg = NULL;
 	}
 
-	LOGP(DLSMS, LOGL_INFO, "Received CP-ERROR\n");
+	LOGP(DLSMS, LOGL_INFO,
+		SMC_LOG_STR "received CP-ERROR\n", inst->id);
 	/* 5.3.4 enter idle */
 	new_cp_state(inst, GSM411_CPS_IDLE);
 	/* indicate error */
@@ -352,7 +376,8 @@
 		inst->cp_msg = NULL;
 	}
 
-	LOGP(DLSMS, LOGL_INFO, "MM layer is released\n");
+	LOGP(DLSMS, LOGL_INFO,
+		SMC_LOG_STR "MM layer is released\n", inst->id);
 	/* 5.3.4 enter idle */
 	new_cp_state(inst, GSM411_CPS_IDLE);
 	/* indicate error */
@@ -429,13 +454,15 @@
 				break;
 	}
 	if (i == SMCDOWNSLLEN) {
-		LOGP(DLSMS, LOGL_NOTICE, "Message %u unhandled at this state "
-			"%s.\n", msg_type, smc_state_names[inst->cp_state]);
+		LOGP(DLSMS, LOGL_NOTICE,
+			SMC_LOG_STR "message %u unhandled at this state %s.\n",
+			inst->id, msg_type, smc_state_names[inst->cp_state]);
 		msgb_free(msg);
 		return 0;
 	}
 
-	LOGP(DLSMS, LOGL_INFO, "Message %s received in state %s\n",
+	LOGP(DLSMS, LOGL_INFO,
+		SMC_LOG_STR "message %s received in state %s\n", inst->id,
 		smcdownstatelist[i].name, smc_state_names[inst->cp_state]);
 
 	rc = smcdownstatelist[i].rout(inst, msg);
@@ -506,15 +533,17 @@
 				break;
 	}
 	if (i == SMCDATASLLEN) {
-		LOGP(DLSMS, LOGL_NOTICE, "Message 0x%x/%u unhandled at this "
-			"state %s.\n", msg_type, cp_msg_type,
+		LOGP(DLSMS, LOGL_NOTICE,
+			SMC_LOG_STR "message 0x%x/%u unhandled at this "
+			"state %s.\n", inst->id, msg_type, cp_msg_type,
 			smc_state_names[inst->cp_state]);
 		if (msg_type == GSM411_MMSMS_EST_IND
 		 || msg_type == GSM411_MMSMS_DATA_IND) {
 			struct msgb *nmsg;
 
-			LOGP(DLSMS, LOGL_NOTICE, "RX Unimplemented CP "
-				"msg_type: 0x%02x\n", msg_type);
+			LOGP(DLSMS, LOGL_NOTICE,
+				SMC_LOG_STR "RX Unimplemented CP "
+				"msg_type: 0x%02x\n", inst->id, msg_type);
 			/* 5.3.4 enter idle */
 			new_cp_state(inst, GSM411_CPS_IDLE);
 			/* indicate error */
@@ -532,7 +561,8 @@
 		return 0;
 	}
 
-	LOGP(DLSMS, LOGL_INFO, "Message %s received in state %s\n",
+	LOGP(DLSMS, LOGL_INFO,
+		SMC_LOG_STR "message %s received in state %s\n", inst->id,
 		smcdatastatelist[i].name, smc_state_names[inst->cp_state]);
 
 	rc = smcdatastatelist[i].rout(inst, msg);
