diff --git a/src/bankd.h b/src/bankd.h
index e97b702..9d17389 100644
--- a/src/bankd.h
+++ b/src/bankd.h
@@ -103,7 +103,7 @@
 		int fd;
 		struct sockaddr_storage peer_addr;
 		socklen_t peer_addr_len;
-		unsigned int id;
+		struct client_slot clslot;
 	} client;
 
 	struct {
diff --git a/src/bankd_main.c b/src/bankd_main.c
index cbe33c1..76a8d6c 100644
--- a/src/bankd_main.c
+++ b/src/bankd_main.c
@@ -215,11 +215,12 @@
 		return -102;
 	}
 
-	if (!pdu->msg.choice.connectClientReq.clientId) {
+	if (!pdu->msg.choice.connectClientReq.clientSlot) {
 		LOGW(worker, "missing clientID, aborting\n");
 		return -103;
 	}
-	worker->client.id = *pdu->msg.choice.connectClientReq.clientId;
+	worker->client.clslot.client_id = pdu->msg.choice.connectClientReq.clientSlot->clientId;
+	worker->client.clslot.slot_nr = pdu->msg.choice.connectClientReq.clientSlot->slotNr;
 	worker_set_state(worker, BW_ST_CONN_CLIENT);
 
 	/* FIXME: resolve mapping */
@@ -367,6 +368,7 @@
 			close(worker->client.fd);
 		memset(&worker->client.peer_addr, 0, sizeof(worker->client.peer_addr));
 		worker->client.fd = -1;
+		worker->client.clslot.client_id = worker->client.clslot.slot_nr = 0;
 	}
 
 	pthread_cleanup_pop(1);
diff --git a/src/rspro/ConfigClientReq.c b/src/rspro/ConfigClientReq.c
index 1221b4a..586ac41 100644
--- a/src/rspro/ConfigClientReq.c
+++ b/src/rspro/ConfigClientReq.c
@@ -7,14 +7,14 @@
 #include <osmocom/rspro/ConfigClientReq.h>
 
 static asn_TYPE_member_t asn_MBR_ConfigClientReq_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct ConfigClientReq, clientId),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+	{ ATF_NOFLAGS, 0, offsetof(struct ConfigClientReq, clientSlot),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_ClientId,
+		&asn_DEF_ClientSlot,
 		0,	/* Defer constraints checking to the member type */
 		0,	/* PER is not compiled, use -gen-PER */
 		0,
-		"clientId"
+		"clientSlot"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct ConfigClientReq, bankd),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
@@ -30,8 +30,8 @@
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_ConfigClientReq_tag2el_1[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* clientId */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* bankd */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* clientSlot */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* bankd */
 };
 static asn_SEQUENCE_specifics_t asn_SPC_ConfigClientReq_specs_1 = {
 	sizeof(struct ConfigClientReq),
diff --git a/src/rspro/ConnectClientReq.c b/src/rspro/ConnectClientReq.c
index 7b83b19..16cc091 100644
--- a/src/rspro/ConnectClientReq.c
+++ b/src/rspro/ConnectClientReq.c
@@ -16,22 +16,22 @@
 		0,
 		"identity"
 		},
-	{ ATF_POINTER, 1, offsetof(struct ConnectClientReq, clientId),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+	{ ATF_POINTER, 1, offsetof(struct ConnectClientReq, clientSlot),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_ClientId,
+		&asn_DEF_ClientSlot,
 		0,	/* Defer constraints checking to the member type */
 		0,	/* PER is not compiled, use -gen-PER */
 		0,
-		"clientId"
+		"clientSlot"
 		},
 };
 static const ber_tlv_tag_t asn_DEF_ConnectClientReq_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_ConnectClientReq_tag2el_1[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* clientId */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* identity */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* identity */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* clientSlot */
 };
 static asn_SEQUENCE_specifics_t asn_SPC_ConnectClientReq_specs_1 = {
 	sizeof(struct ConnectClientReq),
diff --git a/src/rspro_util.c b/src/rspro_util.c
index 7ff93c3..9f8c3d5 100644
--- a/src/rspro_util.c
+++ b/src/rspro_util.c
@@ -127,13 +127,13 @@
 	return pdu;
 }
 
-RsproPDU_t *rspro_gen_ConfigClientReq(uint16_t client_id, uint32_t ip, uint16_t port)
+RsproPDU_t *rspro_gen_ConfigClientReq(const ClientSlot_t *client, uint32_t ip, uint16_t port)
 {
 	RsproPDU_t *pdu = CALLOC(1, sizeof(*pdu));
 	if (!pdu)
 		return NULL;
 	pdu->msg.present = RsproPDUchoice_PR_configClientReq;
-	pdu->msg.choice.configClientReq.clientId = client_id;
+	pdu->msg.choice.configClientReq.clientSlot = *client;
 	fill_ip4_port(&pdu->msg.choice.configClientReq.bankd, ip, port);
 
 	return pdu;
