diff --git a/inventory_provider/juniper.py b/inventory_provider/juniper.py
index 9a8af475adaab1a2719c4bcaceb226373d7806eb..7cda57d27c9cf9f6807a559de12c40771ebc73ff 100644
--- a/inventory_provider/juniper.py
+++ b/inventory_provider/juniper.py
@@ -384,22 +384,25 @@ def load_routers_from_junosspace(config):
             logger.error('%d.%d: %s' % (e.line, e.column, e.message))
         assert False
 
-    for d in devices.xpath('//devices/device'):
-        name = d.xpath('./name/text()')[0]
+    def _derive_hostname(n):
         # TODO: ask ops if this name->hostname operation is valid
+        if name.endswith('geant.net'):
+            return name
         m = re.match(r'^(.*?)(\.re\d+)?$', name)
         if m:
-            hostname = m.group(1) + '.geant.net'
-        else:
-            logger.error(
-                'unrecognized junosspace device name format :%s' % name)
-            hostname = None
+            return m.group(1) + '.geant.net'
+        logger.error(
+            'unrecognized junosspace device name format :%s' % name)
+        return None
+
+    for d in devices.xpath('//devices/device'):
+        name = d.xpath('./name/text()')[0]
         yield {
             "OSVersion": d.xpath('./OSVersion/text()')[0],
             "platform": d.xpath('./platform/text()')[0],
             "address": d.xpath('./ipAddr/text()')[0],
             "name": name,
-            "hostname": hostname
+            "hostname": _derive_hostname(name)
         }