diff --git a/inventory_provider/juniper.py b/inventory_provider/juniper.py
index e1348600ecdccdb4dc222b070edd5c67ef77dd80..e76463eefdde5a68de7a8c2d0479f8294f9701ec 100644
--- a/inventory_provider/juniper.py
+++ b/inventory_provider/juniper.py
@@ -207,19 +207,23 @@ def list_interfaces(netconf_config):
 
         return ifc
 
-    def _units(base_name, node):
-        for u in node.xpath('./unit'):
-            if u.get('inactive', None) == 'inactive':
+    def _inactive(interface_node):
+        return interface_node.get('inactive', None) == 'inactive'
+
+    def _units(base_name, interface_node):
+        for u in interface_node.xpath('./unit'):
+            if _inactive(u):
                 continue
             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'):
+        if _inactive(i):
+            continue
         info = _ifc_info(i)
         yield info
-        for u in _units(info['name'], i):
-            yield u
+        yield from _units(info['name'], i)
 
     for i in netconf_config.xpath(
             '//configuration/logical-systems/interfaces/interface'):