diff --git a/inventory_provider/juniper.py b/inventory_provider/juniper.py
index 575388892d6fd24292436ab21e8624c2a52adc2d..2925b7075cc6055e1c21b81e8429a2fa47030450 100644
--- a/inventory_provider/juniper.py
+++ b/inventory_provider/juniper.py
@@ -228,13 +228,24 @@ def list_interfaces(netconf_config):
 
         return ifc
 
+    def _units(base_name, node):
+        for u in node.xpath('./unit'):
+            unit_info = _ifc_info(u)
+            unit_info['name'] = "%s.%s" % (base_name, unit_info['name'])
+            yield unit_info
+
     for i in netconf_config.xpath('//configuration/interfaces/interface'):
         info = _ifc_info(i)
         yield info
-        for u in i.xpath('./unit'):
-            unit_info = _ifc_info(u)
-            unit_info['name'] = "%s.%s" % (info['name'], unit_info['name'])
-            yield unit_info
+        for u in _units(info['name'], i):
+            yield u
+
+    for i in netconf_config.xpath(
+            '//configuration/logical-systems/interfaces/interface'):
+        name = i.find('name')
+        assert name is not None, 'expected interface ''name'' child element'
+        for u in _units(name.text, i):
+            yield u
 
 
 def list_bgp_routes(netconf_config):