diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py
index bbbd593402dccc676dd9c70c1a22c64b2d35a9ed..3f8b7b21bfdd84b6141887a2346df22093b87d0f 100644
--- a/inventory_provider/tasks/worker.py
+++ b/inventory_provider/tasks/worker.py
@@ -1077,9 +1077,10 @@ def persist_ims_data(data, use_current=False):
     sid_services = data['sid_services']
 
     def _get_pops():
-        # de-dupe the sites
+        # de-dupe the sites (by abbreviation)
         pops = {
-            equip['pop']['name']: equip['pop'] for equip in locations.values()}
+            equip['pop']['abbreviation']: equip['pop']
+            for equip in locations.values()}
         return pops.values()
 
     if use_current:
@@ -1110,7 +1111,7 @@ def persist_ims_data(data, use_current=False):
     for h, d in locations.items():
         rp.set(f'ims:location:{h}', json.dumps([d]))
     for pop in _get_pops():
-        rp.set(f'ims:pop:{pop["name"]}', json.dumps(pop))
+        rp.set(f'ims:pop:{pop["abbreviation"]}', json.dumps(pop))
     rp.execute()
     rp = r.pipeline()
     for router in lg_routers:
diff --git a/test/test_worker.py b/test/test_worker.py
index 82c6799a02c5d05ffec71e562e2bc0e8c0d0cb3d..7a6a30231f5460a52e62d627bcdef736625a8cec 100644
--- a/test/test_worker.py
+++ b/test/test_worker.py
@@ -393,8 +393,8 @@ def test_persist_ims_data(mocker, data_config, mocked_redis):
 
     data = {
         "locations": {
-            "loc_a": {'pop': {'name': "LOC A"}},
-            "loc_b": {'pop': {'name': "LOC B"}},
+            "loc_a": {'pop': {'name': "LOC A", 'abbreviation': 'aaa'}},
+            "loc_b": {'pop': {'name': "LOC B", 'abbreviation': 'bbb'}},
         },
         "lg_routers": [
             {"equipment name": "lg_eq1"}, {"equipment name": "lg_eq2"}