diff --git a/inventory_provider/routes/msr.py b/inventory_provider/routes/msr.py
index 72df4fd8a70ec115317d4e25b5ac6e73addb1724..a1271f07474a9f96fc16e7e7cfff80f0379d7a00 100644
--- a/inventory_provider/routes/msr.py
+++ b/inventory_provider/routes/msr.py
@@ -144,6 +144,7 @@ PEERING_ADDRESS_SERVICES_LIST = {
     'definitions': {
         'service': {
             'properties': {
+                'id': {'type': 'integer'},
                 'name': {'type': 'string'},
                 'type': {'type': 'string'},
                 'status': {'type': 'string'}
@@ -445,6 +446,15 @@ def _get_subnet_interfaces(address, r):
 
 
 def _get_peer_address_services(address: str, r: 'StrictRedis'):
+
+    def _formatted_service(s):
+        return {
+            'id': s['id'],
+            'name': s['name'],
+            'type': s['service_type'],
+            'status': s['status']
+        }
+
     for ifc_info in _get_subnet_interfaces(address, r):
         ims_source_equipment = get_ims_equipment_name(
             ifc_info['router'], r)
@@ -452,20 +462,15 @@ def _get_peer_address_services(address: str, r: 'StrictRedis'):
         service_info = get_interface_services_and_loc(
             ims_source_equipment, ims_interface, r)
 
-        # make a dict to de-dup the services list
-        services_dict = {}
-        for s in service_info.get('services', []):
-            services_dict[s['id']] = {
-                'name': s['name'],
-                'type': s['service_type'],
-                'status': s['status']
-            }
+        services = service_info.get('services', [])
+        services = map(_formatted_service, services)
+        services = sorted(services, key=lambda x: x['name'])
 
         yield {
             'address': address,
             'hostname': ifc_info['router'],
             'interface': ifc_info['interface name'],
-            'services': list(services_dict.values())
+            'services': list(services)
         }
 
 
diff --git a/test/test_msr_routes.py b/test/test_msr_routes.py
index 2e266107c15ea45c30b2d9edee52a5b7f2497262..bb4ebf6361885988fd1899065c29f5a2877bdb11 100644
--- a/test/test_msr_routes.py
+++ b/test/test_msr_routes.py
@@ -139,8 +139,28 @@ def test_peerings_group_list(client, uri):
     assert response_data  # test data is non-empty
 
 
-# taken from a sample splunk query
+@pytest.mark.parametrize('address', [
+    '62.40.127.141',
+    '62.40.127.139'
+])
+def test_lookup_services_for_address(address, mocked_redis):
+    _redis_instance = _get_redis({
+        'redis': {
+            'hostname': None,
+            'port': None
+        },
+        'redis-databases': [9, 7, 5]
+    })
+
+    info = list(_get_peer_address_services(address, r=_redis_instance))
+    jsonschema.validate(info, PEERING_ADDRESS_SERVICES_LIST)
+
+    # sanity check to be sure we have interesting test data
+    assert all(x['services'] for x in info)
+
+
 _OUTAGE_PEER_ADDRESSES = [
+    # taken from a sample splunk query result
     '83.97.93.247',
     '146.48.78.13',
     '185.6.36.40',
@@ -244,24 +264,6 @@ _OUTAGE_PEER_ADDRESSES = [
 ]
 
 
-@pytest.mark.parametrize('address', [
-    '62.40.127.141',
-    '62.40.127.139'
-])
-def test_lookup_peer_services(address, mocked_redis):
-    _redis_instance = _get_redis({
-        'redis': {
-            'hostname': None,
-            'port': None
-        },
-        'redis-databases': [0, 7]
-    })
-
-    info = list(_get_peer_address_services(address, r=_redis_instance))
-    jsonschema.validate(info, PEERING_ADDRESS_SERVICES_LIST)
-    assert all(x['services'] for x in info)
-
-
 def test_peering_services(client):
     headers = {'Content-Type': 'application/json'}
     headers.update(DEFAULT_REQUEST_HEADERS)