diff --git a/lib/modems2.js b/lib/modems2.js
index c461d10..0398e3a 100644
--- a/lib/modems2.js
+++ b/lib/modems2.js
@@ -46,6 +46,11 @@ function touchByIMSI(val) {
     if (typeof val.imsi !== 'string') return;
     if (!val.imsi.trim()) return;
 
+    const oldName = modemList.by_imsi[val.imsi] ? modemList.by_imsi[val.imsi].name : null;
+    if (oldName && oldName !== val.name && modemList.by_name[oldName]) {
+        delete modemList.by_name[oldName];
+    }
+
     modemList.by_imsi[val.imsi] = val;
 }