diff --git a/anvil/packaging/yum.py b/anvil/packaging/yum.py
index 03fcffe9..7c797783 100644
--- a/anvil/packaging/yum.py
+++ b/anvil/packaging/yum.py
@@ -640,19 +640,22 @@ class YumDependencyHandler(base.DependencyHandler):
 
         # Ensure we select the right versions that is required and not a
         # version that doesn't match the requirements.
-        preq_rpms = []
-        just_names = []
-        preq_formatted = []
+        desired_rpms = []
+        desired_rpm_names = set()
+        desired_rpms_formatted = []
+
+        def format_name(rpm_name, py_req):
+            full_name = str(rpm_name).strip()
+            if py_req is not None:
+                full_name += ",%s" % (py_req)
+            return full_name
 
         def capture_rpm(rpm_name, py_req):
-            if rpm_name in just_names or not rpm_name:
+            if rpm_name in desired_rpm_names or not rpm_name:
                 return
-            if not py_req:
-                preq_formatted.append(str(rpm_name))
-            else:
-                preq_formatted.append("%s,%s" % (rpm_name, py_req))
-            preq_rpms.append((rpm_name, py_req))
-            just_names.append(rpm_name)
+            desired_rpms_formatted.append(format_name(rpm_name, py_req))
+            desired_rpms.append((rpm_name, py_req))
+            desired_rpm_names.add(rpm_name)
 
         for (rpm_name, req) in zip(rpm_names, reqs):
             capture_rpm(rpm_name, req)
@@ -672,33 +675,44 @@ class YumDependencyHandler(base.DependencyHandler):
             capture_rpm(rpm_name, None)
 
         cmd = [self.yumfind_executable, '-j']
-        preq_formatted = sorted(preq_formatted)
-        for p in preq_formatted:
+        desired_rpms_formatted = sorted(desired_rpms_formatted)
+        for p in desired_rpms_formatted:
             cmd.extend(['-p', p])
-        utils.log_iterable(preq_formatted,
-                           header="Validating %s required packages are still available" % (len(preq_formatted)),
-                           logger=LOG)
-        the_rpms = []
-        for i, matched in enumerate(sh.execute(cmd)[0].splitlines()):
+        header = "Validating %s required packages are still available" % (len(desired_rpms))
+        utils.log_iterable(desired_rpms_formatted, header=header, logger=LOG)
+
+        rpms_located = []
+        rpm_names_located = set()
+        for matched in sh.execute(cmd)[0].splitlines():
             matched = matched.strip()
-            pkg = None
             if matched:
                 pkg = json.loads(matched)
-            if not pkg:
-                rpm_name, py_req = preq_rpms[i]
-                msg = "Could not find available rpm package '%s'" % (rpm_name)
-                if py_req:
-                    msg += " matching requirement '%s'" % (py_req)
-                raise excp.DependencyException(msg)
-            else:
-                the_rpms.append((pkg['name'], pkg['version']))
-        LOG.info("All %s required packages are still available!", len(the_rpms))
+                if isinstance(pkg, dict):
+                    rpm_names_located.add(pkg['name'])
+                    rpms_located.append((pkg['name'], pkg['version']))
 
-        # Now format correctly
-        just_rpms = []
-        for (name, ver) in the_rpms:
-            just_rpms.append("%s,%s" % (name, ver))
-        return list(sorted(just_rpms))
+        rpm_names_missing = desired_rpm_names - rpm_names_located
+        if rpm_names_missing:
+            # Include the python version required information (if applicable)
+            missing_formatted = []
+            for n in sorted(rpm_names_missing):
+                source_found = False
+                for (n2, py_req) in desired_rpms:
+                    if n2 == n:
+                        missing_formatted.append(format_name(n2, py_req))
+                        source_found = True
+                        break
+                if not source_found:
+                    missing_formatted.append(format_name(n, None))
+            msg = "Could not find available rpm packages: %s"
+            msg = msg % (", ".join(missing_formatted))
+            raise excp.DependencyException(msg)
+
+        LOG.info("All %s required packages are still available!", len(desired_rpms))
+        desired_rpms = []
+        for (name, version) in rpms_located:
+            desired_rpms.append("%s,%s" % (name, version))
+        return list(sorted(desired_rpms))
 
     def install(self):
         super(YumDependencyHandler, self).install()