diff --git a/remsim/RemsimServer_Tests.ttcn b/remsim/RemsimServer_Tests.ttcn
index f0589ef..f2dbc25 100644
--- a/remsim/RemsimServer_Tests.ttcn
+++ b/remsim/RemsimServer_Tests.ttcn
@@ -390,7 +390,7 @@
 	f_ensure_slotmaps({});
 }
 
-/* simple delete of a 'ACTIVE' slotmap */
+/* simple delete of a 'ACTIVE' slotmap from server + bankd */
 testcase TC_slotmap_del_active() runs on test_CT {
 	var ComponentIdentity rspro_id := valueof(ts_CompId(remsimBankd, testcasename()));
 	f_rspro_init(rspro[0], mp_server_ip, mp_server_port, rspro_id, 0);
@@ -429,6 +429,58 @@
 }
 
 
+/* simple delete of a 'ACTIVE' slotmap from client */
+testcase TC_slotmap_del_active_client() runs on test_CT {
+	var ComponentIdentity rspro_id := valueof(ts_CompId(remsimBankd, testcasename()));
+	f_rspro_init(rspro[0], mp_server_ip, mp_server_port, rspro_id, 0);
+	rspro[0].rspro_bank_id := 1;
+	rspro[0].rspro_bank_nslots := 8;
+
+	rspro_id := valueof(ts_CompId(remsimClient, testcasename()));
+	f_rspro_init(rspro[1], mp_server_ip, mp_server_port, rspro_id, 1);
+	rspro[1].rspro_client_slot := valueof(ts_ClientSlot(3,4));
+
+	f_rsres_init();
+	var JsSlotmap sm := valueof(ts_JsSlotmap(ts_BankSlot(1,2), ts_ClientSlot(3,4)));
+	var HTTPResponse res;
+
+	/* Create a new slotmap via HTTP */
+	res := f_rsres_post_slotmap(sm);
+
+	/* verify that the slotmap exists and is NEW */
+	f_ensure_slotmap_exists_only(sm.client, sm.bank, NEW);
+
+	/* connect a bankd for that slotmap */
+	f_rspro_connect_client(0);
+
+	/* connect a client for that slotmap */
+	f_rspro_connect_client(1);
+
+	/* expect the slotmap to be pushed to bank and ACK it */
+	as_rspro_create_mapping(0, sm.client, sm.bank);
+
+	/* verify that the slotmap exists and is ACTIVE */
+	f_ensure_slotmap_exists_only(sm.client, sm.bank, ACTIVE);
+
+	/* expect the client to be configured with bankd side settings */
+	as_rspro_cfg_client_bank(1, sm.bank, ?/*FIXME*/);
+
+	f_sleep(1.0);
+
+	/* delete the slotmap via REST */
+	res := f_rsres_delete_slotmap(sm.bank);
+
+	/* verify the slotmap is gone from REST interface immediately */
+	f_ensure_slotmaps({});
+
+	/* verify the slotmap is removed from bankd */
+	as_rspro_remove_mapping(0, sm.client, sm.bank);
+
+	/* verify the slotmap is removed from client by setting IP/port to '0' */
+	as_rspro_cfg_client_bank(1, ?, tr_IpPort(ts_IPv4("0.0.0.0"), 0));
+}
+
+
 /* Add a slotmap to a currently active bank */
 testcase TC_slotmap_add_active_bank() runs on test_CT {
 	var ComponentIdentity rspro_id := valueof(ts_CompId(remsimBankd, testcasename()));
@@ -478,6 +530,7 @@
 	execute( TC_slotmap_del_new() );
 	execute( TC_slotmap_del_unack() );
 	execute( TC_slotmap_del_active() );
+	execute( TC_slotmap_del_active_client() );
 	execute( TC_slotmap_add_active_bank() );
 }
 
