diff --git a/slapos/grid/slapgrid.py b/slapos/grid/slapgrid.py
index 4a14a08fda9492a27b3a729f71d65ccd42604e97..6c9ce191b500e9b596fe9725deecf85c0d705198 100644
--- a/slapos/grid/slapgrid.py
+++ b/slapos/grid/slapgrid.py
@@ -611,6 +611,13 @@ class Slapgrid(object):
     for computer_partition in self.getComputerPartitionList():
       computer_partition_id = computer_partition.getId()
 
+      try:
+        software_url = computer_partition.getSoftwareRelease().getURI()
+        # XXX should test status as well. But getState() returns default value.
+      except NotFoundError:
+        # No Software Release information: skip.
+        continue
+
       # Check if we defined explicit list of partitions to process.
       # If so, if current partition not in this list, skip.
       if len(self.computer_partition_filter_list) > 0 and \
@@ -640,10 +647,7 @@ class Slapgrid(object):
             os.remove(timestamp_path)
             exception = traceback.format_exc()
             logger.error(exception)
-      try:
-        software_url = computer_partition.getSoftwareRelease().getURI()
-      except NotFoundError:
-        software_url = None
+
       software_path = os.path.join(self.software_root,
             getSoftwareUrlHash(software_url))
       local_partition = Partition(