diff --git a/src/bankd_main.c b/src/bankd_main.c
index 3a65629..0760811 100644
--- a/src/bankd_main.c
+++ b/src/bankd_main.c
@@ -151,35 +151,46 @@
 		break;
 	case RsproPDUchoice_PR_createMappingReq:
 		creq = &pdu->msg.choice.createMappingReq;
-		if (creq->bank.bankId != g_bankd->cfg.bank_id)
+		if (creq->bank.bankId != g_bankd->cfg.bank_id) {
+			LOGPFSML(srvc->fi, LOGL_ERROR, "createMapping specifies invalid Bank ID %lu "
+				 "(we are %u)\n", creq->bank.bankId, g_bankd->cfg.bank_id);
 			resp = rspro_gen_CreateMappingRes(ResultCode_illegalBankId);
-		else if (creq->bank.slotNr >= g_bankd->cfg.num_slots)
+		} else if (creq->bank.slotNr >= g_bankd->cfg.num_slots) {
+			LOGPFSML(srvc->fi, LOGL_ERROR, "createMapping specifies invalid Slot Nr %lu "
+				 "(we have %u)\n", creq->bank.slotNr, g_bankd->cfg.num_slots);
 			resp = rspro_gen_CreateMappingRes(ResultCode_illegalSlotId);
-		else {
+		} else {
 			rspro2bank_slot(&bs, &creq->bank);
 			rspro2client_slot(&cs, &creq->client);
 			/* Add a new mapping */
 			map = slotmap_add(g_bankd->slotmaps, &bs, &cs);
-			if (!map)
+			if (!map) {
+				LOGPFSML(srvc->fi, LOGL_ERROR, "could not create slotmap\n");
 				resp = rspro_gen_CreateMappingRes(ResultCode_illegalSlotId);
-			else
+			} else
 				resp = rspro_gen_CreateMappingRes(ResultCode_ok);
 		}
 		server_conn_send_rspro(srvc, resp);
 		break;
 	case RsproPDUchoice_PR_removeMappingReq:
 		rreq = &pdu->msg.choice.removeMappingReq;
-		if (rreq->bank.bankId != g_bankd->cfg.bank_id)
+		if (rreq->bank.bankId != g_bankd->cfg.bank_id) {
+			LOGPFSML(srvc->fi, LOGL_ERROR, "removeMapping specifies invalid Bank ID %lu "
+				 "(we are %u)\n", creq->bank.bankId, g_bankd->cfg.bank_id);
 			resp = rspro_gen_RemoveMappingRes(ResultCode_illegalBankId);
-		else if (rreq->bank.slotNr >= g_bankd->cfg.num_slots)
+		} else if (rreq->bank.slotNr >= g_bankd->cfg.num_slots) {
+			LOGPFSML(srvc->fi, LOGL_ERROR, "removeMapping specifies invalid Slot Nr %lu "
+				 "(we have %u)\n", creq->bank.slotNr, g_bankd->cfg.num_slots);
 			resp = rspro_gen_RemoveMappingRes(ResultCode_illegalSlotId);
-		else {
+		} else {
 			rspro2bank_slot(&bs, &rreq->bank);
 			/* Remove a mapping */
 			map = slotmap_by_bank(g_bankd->slotmaps, &bs);
-			if (!map)
+			if (!map) {
+				LOGPFSML(srvc->fi, LOGL_ERROR, "could not find to-be-deleted slotmap\n");
 				resp = rspro_gen_RemoveMappingRes(ResultCode_unknownSlotmap);
-			else {
+			} else {
+				LOGPFSM(srvc->fi, "removing slotmap\n");
 				slotmap_del(g_bankd->slotmaps, map);
 				resp = rspro_gen_RemoveMappingRes(ResultCode_ok);
 
